मैं अपनी कुंजी के साथ एईएस का उपयोग करके एक स्ट्रिंग को एन्क्रिप्ट करना चाहता हूं। लेकिन मुझे चाबी की थोड़ी लंबाई से परेशानी हो रही है। क्या आप मेरे कोड की समीक्षा कर सकते हैं और देख सकते हैं कि मुझे क्या तय करना / बदलना है।
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));
}
अभी मुझे एक अपवाद मिला " अमान्य एईएस की लंबाई: 86 बाइट्स "। क्या मुझे अपनी कुंजी पैड करने की आवश्यकता है? मैं इसे कैसे करूं?
क्या मुझे ईसीबी या सीबीसी के लिए कुछ भी निर्धारित करने की आवश्यकता है?
धन्यवाद