티스토리 뷰
AES 암호화시 입력값은 특정 바이트 배수가 되어야 하는데, 그 배수중 모자란 값을 채우는게 패딩이다.
보통 PKCS 패딩을 쓰는데, 5와 7의 정의는 조금 다르다.
PKCS5 블록크기 : 8바이트
PKCS7 블록크기: 1~255 바이트 (any, 암호화 방식에 따라 동적 적용)
그런데 Java 에서 AES/CBC/PKCS7Padding 암호화를 적용하려하는데 아래와 같은 오류가 발생했다.
java.security.NoSuchAlgorithmException: Cannot find any provider supporting AES/CBC/PKCS7Padding
Java에서는 PKCS7이 없다. 아니 PKCS5가 PKCS7로 수행되지만, PKCS5란 이름으로 JCA(Java Cryptography Architecture)에 정의되어 있다.
아래 JCE (Java Cryptography Extension) 문서를 보면 나와있다.. 고 한다. 영문임
http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html
그래서 Java에서는 PKCS5 로 설정하더라도, 다른 언어(C# 등)에서 PKCS7 로 설정한것과 정확히 호환된다.
[작성] devbible.tistory.com
'Development' 카테고리의 다른 글
[Build] 빌드시 EXE 에 DLL 포함 시키기 (0) | 2017.09.19 |
---|---|
[Nuget] json.net 설치불가 (0) | 2017.09.19 |
[C#] string vs String (0) | 2017.09.07 |
[Redis] Redis Download for windows (0) | 2017.06.18 |
[C/Cpp] #include <file> vs #include "file" (0) | 2017.04.03 |
댓글
최근에 올라온 글
글 보관함
- Total
- Today
- Yesterday