javascript 开发人员使用crypto-js来加密文本。它使用简单。
var CryptoJS = require("crypto-js");
// Encrypt
var ciphertext = CryptoJS.AES.encrypt('my message', 'secret key 123');
// Decrypt
var bytes = CryptoJS.AES.decrypt(ciphertext.toString(), 'secret key 123');
var plaintext = bytes.toString(CryptoJS.enc.Utf8);
console.log(plaintext);
在此示例中,加密函数仅采用两个参数 messageToEncrypt 和 salt。其余配置将在其定义中。我不是 javascript 人,所以很难找到和理解加密定义。
我想AES
使用 java 实现相同的加密。因此,对于相同的输入参数,例如 messageToEncrypt 和 salt,我应该使用 crypto-js 库和 Java 实现获得相同的加密文本。
我尝试javax.crypto
探索谷歌上的一些链接。
String plainText = "messageToEncrypt";
String key = "mySalt";
SecretKey secKey = new SecretKeySpec(key.getBytes("UTF-8"), "AES");
Cipher aesCipher = Cipher.getInstance("AES");
aesCipher.init(Cipher.ENCRYPT_MODE, secKey);
byte[] x = aesCipher.doFinal(plainText.getBytes());
System.out.println(x);
但这对我不起作用,因为我不知道 keySize 和迭代计数等确切参数。
我也尝试使用https://github.com/mpetersen/aes-example/blob/master/src/main/java/org/cloudme/sample/aes/AesUtil.java但我也不确定 keySize 和 iterationCount .
如何在java中创建crypto-js的AES加密的简单精确实现?