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