어떤 크기의 비밀번호가 주어지면 스트림을 통해 수신되는 파일을 AES
으로 암호화하는 방법을 찾고 있습니다. 일을 더 쉽게 시작하려면 파일에 암호화 된 메시지를 작성하려고했습니다. 하지만 문제가 있습니다 :CipherOutputStream + AES를 사용하여 파일에 문자열 쓰기
- 어떤 크기의 암호도 정의하고 싶습니다. "표준"형식으로이 작업을 수행 할 수 있습니까 아니면 암호를 2^k 크기로 채워야합니까? 현재 임시 "aaaaaaaaaaaaaaaa"비밀번호를 제공하는 문제를 피하고 있지만 최대한 빨리 문제를 해결하고 싶습니다.
cos
에 긴 문자열을 쓰려고하면 암호화 된 내용이 파일에 기록됩니다. 그러나 "abc"와 같이 더 작은 것을 시도하면 아무 것도 쓸 수 없습니다. 나는 여러 패딩 옵션을 가지고 놀았지만 아무 쓸데없는 것 같습니다 (PKCS5Padding, SSL3Padding, NoPadding). 여기
내가 사용하고 코드입니다 :
SecretKeySpec localSecretKeySpec = new SecretKeySpec("aaaaaaaaaaaaaaaa".getBytes(), "AES");
Cipher localCipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
localCipher.init(Cipher.ENCRYPT_MODE, localSecretKeySpec);
CipherOutputStream cos = new CipherOutputStream(new FileOutputStream("abc"), localCipher);
IOUtils.write("abc", cos);
cos.flush();