我是加密的新手。我正在寻找有关加密的代码,我正在尝试知道它是如何工作的,因为它很有趣,我喜欢将来编码。
然后我找到了这段代码:
System.out.print("Enter text: ");
String text = dataIn.readLine();
String key = "Bar12345Bar12345"; // 128 bit key
// Create key and cipher
Key aesKey = new SecretKeySpec(key.getBytes(), "AES");
Cipher cipher = Cipher.getInstance("AES");
...
在我开始研究之前。我不知道String = Bar12345Bar12345
是如何运作的。它说它是128 bit key
。 String
是否恒定?改变它可以吗?
答案 0 :(得分:3)
准确地说,字符串不是您的密钥,而是您从key.getBytes()
获得的字节数。虽然它可能适用于此示例,但这不是您应该在生产代码中执行的操作:
还有另一个问题:不只是使用" AES"您还应该在构造Cipher对象时指定操作模式和填充(例如" AES / CBC / PKCS5Padding")。否则,第二个和第三个参数取决于提供者。