如何在CryptoJS.AES.encrypt中指定您不想使用盐?

时间:2015-11-18 01:27:54

标签: encryption coldfusion cryptography salt cryptojs

在我的项目(Titanium Appcelerator Android移动应用程序)中,我使用CryptoJS库进行AES编码。

虽然第一次使用CryptoJS.AES.encrypt时它没有任何盐(我打印了加密变量的盐,并且它表示'未定义'),其他所有其他的盐都是随机盐。

以下是一些代码:

var key53 = CryptoJS2.enc.Base64.parse("ASTRING");
var iv53  = CryptoJS2.enc.Base64.parse("ANOTHERSTRING");

var encrypted1 = CryptoJS2.AES.encrypt(String("test"), String(key53), {iv: String(iv53)});
var encrypted2 = CryptoJS2.AES.encrypt(String("test"), String(key53), {iv: String(iv53)});
/* other code here */
var encrypted3 = CryptoJS2.AES.encrypt(String("test"), String(key53), {iv: String(iv53)});
alert(encrypted1.salt);       // undefined
alert(encrypted2.salt);       // undefined
alert(encrypted3.salt);       // some random salt

然后我使用Coldfusion来解密这些加密值,就像这样:

<cfset base64Key = "ASTRING">
<cfset base64IV = "ANOTHERSTRING">

<cfset ivBytes = binaryDecode(base64IV, "base64")>

#decrypt(variables.ename, base64Key, "AES/CBC/PKCS5Padding", "base64", ivBytes)#

当没有涉及盐时,Coldfusion完全解密。 但是,当有盐时,coldfusion会抛出这个错误:

尝试加密或解密输入字符串时发生错误:给定最终块没有正确填充。

因此,我希望我的加密不涉及任何盐。这在CryptoJS中是否可行?如果是的话,怎么样?

万分感谢!

0 个答案:

没有答案