PHP和ColdFusion9中的AES加密产生不同的结果。有人可以帮我吗?PHP ColdFusion9 AES加密 - 不同的结果
的下面PHP代码
$key = "12345678123456781234567812345678";
$iv = "1234567812345678";
$data = "This is a plain string.";
echo base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $data, MCRYPT_MODE_CBC, $iv));
给我G + tdEOfQTtVCQGxW3N5uzkqN207OyfIPxS6zf2xrKKY =
虽然下面ColdFusion代码
<cfset thePlainData = "This is a plain string." />
<cfset theKey = "12345678123456781234567812345678" />
<cfset theAlgorithm = "AES/CBC/PKCS5Padding" />
<cfset theEncoding = "base64" />
<cfset theIV = "1234567812345678" />
<cfset encryptedString = encrypt(thePlainData, theKey, theAlgorithm, theEncoding, theIV) />
给我KLt55n5/T3ee6xVq9VGFbyCacJznkHEqC/RDRhL + 4NW =
任何想法,我错了吗?提前致谢。
上面的PHP为我运行,但上面的CF会引发一个错误:“指定的密钥不是此加密的有效密钥:非法密钥大小”......确实是*确切的CF代码?这是CF9企业吗? – 2012-04-24 16:02:25
非常感谢您的快速响应。我正在使用ColdFusion9试用版。 – user812120 2012-04-24 16:03:22
CF期望'theKey'在base64中。将'theKey'转换为base64可以让你更接近,但并不是那样。所以它可能是一种编码差异。你能用hex或者base64打印'theKey/iv'吗? – Leigh 2012-04-24 19:51:44