문제

16 바이트 블록 크기의 AES 암호를 사용하고 있습니다.

16 바이트 스트링을 시도하고 암호화하면 아무런 문제가 없지만 16의 배수가 아닌 다른 길이는 예외를 던지고 있습니다.

3 Des로 알고리즘의 일부로 패딩 유형을 지정할 수 있으며 추가 작업없이 처리됩니다 (예 : DES/CBC/PKCS5Padding). AES로이를 지정하는 방법이 있습니까?

아니면 Pytes를 수동으로 16의 배수로 패드 한 다음 해독 할 때 제거해야합니까? 다음은 약식 코드 샘플입니다.

encrypt = Cipher.getInstance("AES", provider);
encrypt.init(Cipher.ENCRYPT_MODE, key) ;
byte[] encrypted = encrypt.doFinal(plainTxt.getBytes()) ;

모든 대답은 감사했습니다!

미리 감사드립니다, Ciarán

도움이 되었습니까?

해결책

AES와 정확히 동일하게 작동해야합니다. 즉, 패딩 모드는 암호와 함께 지정되어야합니다. 구현되는 패딩 모드는 제공자에 따라 다르며 문서에 설명되어야합니다.

JCE 문서에 따르면 :http://java.sun.com/j2se/1.5.0/docs/guide/security/jce/jcerefguide.html#appaPKCS5Padding과 같은 표준 패딩 모드는 항상 지원되어야합니다 (적어도 해석하는 방법).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top