簡體   English   中英

PHP AES-128-CBC 解碼問題?

[英]PHP AES-128-CBC Decoding Issue?

我一直在瘋狂嘗試解碼加密的AES-128-CBC

加密字符串的第三方文檔。

使用帶有密碼塊鏈接的 AES 128 和 PKCS-7 填充對參數進行加密。 解密算法應使用 16 字節、零填充的初始化向量進行初始化,並應使用您的加密密鑰(可在 PayWay Net Shopping Cart 設置的安全頁面上找到)。

Example Encrypted Parameters: =QzFtdn0%2B66KJV5L8ihbr6ofdmrkEQwqMXI3ayF7UpVlRheR7r5fA6 IqBszeKFoGSyR7c7J4YsXgaOergu5SWD%2FvL%2FzPSrZER9BS7mZGckriBrhYt%2FKMAbTSS8F XR72gWJZsul9aGyGbFripp7XxE9NQHVMWCko0NlpWe7oZ0RBIgNpIZ3JojAfX7b1j%2F5ACJ79S VeOIK80layBwCmIPOpB%2B%2BNI6krE0wekvkkLKF7CXilj5qITvmv%2FpMqwVDchv%2FUNMfCi 4uUA4igHGhaZDQcV8U%2BcYRO8dv%2FnqVbAjkNwBqxqN3UPNFz0Tt76%2BP7H48PDpU23c61eM 7mx%2FZh%2Few5Pd0WkiCwZVkSZoov97BWdnMIw5tOAiqHvAR3%2BnfmGsx

示例加密密鑰: D5cD2CaHd3zfG3C5Apaeyc==

我嘗試使用的代碼:

$encryptedText = '=QzFtdn0%2B66KJV5L8ihbr6ofdmrkEQwqMXI3ayF7UpVlRheR7r5fA6
IqBszeKFoGSyR7c7J4YsXgaOergu5SWD%2FvL%2FzPSrZER9BS7mZGckriBrhYt%2FKMAbTSS8F
XR72gWJZsul9aGyGbFripp7XxE9NQHVMWCko0NlpWe7oZ0RBIgNpIZ3JojAfX7b1j%2F5ACJ79S
VeOIK80layBwCmIPOpB%2B%2BNI6krE0wekvkkLKF7CXilj5qITvmv%2FpMqwVDchv%2FUNMfCi
4uUA4igHGhaZDQcV8U%2BcYRO8dv%2FnqVbAjkNwBqxqN3UPNFz0Tt76%2BP7H48PDpU23c61eM
7mx%2FZh%2Few5Pd0WkiCwZVkSZoov97BWdnMIw5tOAiqHvAR3%2BnfmGsx';

$password = 'D5cD2CaHd3zfG3C5Apaeyc=='
$method = 'AES-128-CBC';
$iv = substr($password, 0, 16); 

$result = openssl_decrypt($encrypted, $method, $password, OPENSSL_ZERO_PADDING, $iv);

return $result;

由於密碼是虛構的,因此該確切代碼將不起作用。 但這基本上是我得到的結果:

hóuR█\f\x04}wù8¨Ø½5\x02|¹ä\x16;┐¸F;Ã=·Íû\x1A¿┴ô`\x05\x08■▓¡¢|Ù_i=æëÔJ▀ß+Ñc"1ÝÒSÑî²ÚMã\x18°FÅcÃj>│└\x0E¦ï\eêÅZ\fÜ║õê6GC╬Íþ╚ɤ?\x11-P^╔öT\x10ÖÈ│,╬¤┼¹op5±órj\x7F\x1D\x10NTªh«@\fÖÚú┤▓╗L┤¼╬1Ç¥æ³\x1Ci R\x1DA8u¥MÀ\x019rmÚ§/~X╔¹\x12]]øÓ PÕopÁ]s‗ \x15Ú$\x0Eo\e\x0F┌äËXû>ÃRr}úýáÞz\x13(Õü\x13╦│\eÿB$ËÁO]¹å‗ÔÓm┴´¦╠`3\x17lPób¼\x15þz\x17/B╝+Èؾ´■,8\x1AAÚöÍá}░TFxÛR)[x?k░%z\fWPÉ-┐üð┬kÜÅr┘.ÔkÅ@^QXiH±¡wö!N

非 UTF-8 字符串...我不知道我做錯了什么...是 $iv 錯了嗎? 在這里發瘋。

解決方案是 base64 在嘗試解密之前解碼密碼/密鑰。

所以解決方案:

$encryptedText = '=QzFtdn0%2B66KJV5L8ihbr6ofdmrkEQwqMXI3ayF7UpVlRheR7r5fA6
IqBszeKFoGSyR7c7J4YsXgaOergu5SWD%2FvL%2FzPSrZER9BS7mZGckriBrhYt%2FKMAbTSS8F
XR72gWJZsul9aGyGbFripp7XxE9NQHVMWCko0NlpWe7oZ0RBIgNpIZ3JojAfX7b1j%2F5ACJ79S
VeOIK80layBwCmIPOpB%2B%2BNI6krE0wekvkkLKF7CXilj5qITvmv%2FpMqwVDchv%2FUNMfCi
4uUA4igHGhaZDQcV8U%2BcYRO8dv%2FnqVbAjkNwBqxqN3UPNFz0Tt76%2BP7H48PDpU23c61eM
7mx%2FZh%2Few5Pd0WkiCwZVkSZoov97BWdnMIw5tOAiqHvAR3%2BnfmGsx';

$password = 'D5cD2CaHd3zfG3C5Apaeyc=='
$method = 'AES-128-CBC';
$iv = "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0";

$result = openssl_decrypt($encrypted, $method, base64_decode($password), OPENSSL_ZERO_PADDING, $iv);

return $result;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM