자체 키로 AES를 사용하여 문자열을 암호화하고 싶습니다. 하지만 키의 비트 길이에 문제가 있습니다. 내 코드를 검토하고 수정 / 변경해야 할 사항을 확인할 수 있습니까?
public static void main(String[] args) throws Exception {
String username = "bob@google.org";
String password = "Password1";
String secretID = "BlahBlahBlah";
String SALT2 = "deliciously salty";
// Get the Key
byte[] key = (SALT2 + username + password).getBytes();
System.out.println((SALT2 + username + password).getBytes().length);
// Need to pad key for AES
// TODO: Best way?
// Generate the secret key specs.
SecretKeySpec secretKeySpec = new SecretKeySpec(key, "AES");
// Instantiate the cipher
Cipher cipher = Cipher.getInstance("AES");
cipher.init(Cipher.ENCRYPT_MODE, secretKeySpec);
byte[] encrypted = cipher.doFinal((secrectID).getBytes());
System.out.println("encrypted string: " + asHex(encrypted));
cipher.init(Cipher.DECRYPT_MODE, secretKeySpec);
byte[] original = cipher.doFinal(encrypted);
String originalString = new String(original);
System.out.println("Original string: " + originalString + "\nOriginal string (Hex): " + asHex(original));
}
지금은 " 잘못된 AES 키 길이 : 86 바이트 " 예외가 발생 합니다. 키를 패딩해야합니까? 어떻게해야합니까?
또한 ECB 또는 CBC에 대한 설정이 필요합니까?
감사