我在客户端使用Java进行加密和解密:
String key = "123456789012345678901234";
EnDeCipherDESTriple DES = new EnDeCipherDESTriple(key.getBytes());
System.out.println("encrpt: "+DES.encrypt("123123"));
System.out.println("decrypt: "+DES.decrypt("DA1553F80A21DB5B"));
我也尝试在js中创建加密器和解密器:
var bkey = '123456789012345678901234';
var keyHex = CryptoJS.enc.Utf8.parse(bkey);
var encrypted = CryptoJS.DES.encrypt('123123', keyHex, {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7
});
var en = encrypted.toString();
console.log(en, encrypted.ciphertext.toString());
// direct decrypt ciphertext
var decrypted = CryptoJS.DES.decrypt({
ciphertext: CryptoJS.enc.Base64.parse(en)
}, keyHex, {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7
});
console.log(decrypted.toString(CryptoJS.enc.Utf8));
但结果不同,我在哪里弄错了?以及如何解决呢?因此js中的加密和解密与Java中的相同。