我想使用我自己的密鑰使用AES加密字符串。但是我在密鑰的位長度上遇到了麻煩。您能否查看我的代碼并查看需要修復(fù)/更改的內(nèi)容。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));}現(xiàn)在,我得到一個(gè)異?!?無效的AES密鑰長度:86個(gè)字節(jié) ”。我是否需要墊鑰匙?我該怎么辦?還需要為ECB或CBC設(shè)置任何內(nèi)容嗎?
添加回答
舉報(bào)
0/150
提交
取消