我一直在疯狂地试图解码一个加密的AES-128-CBC。
加密字符串的第三方的文档。
参数使用AES 128加密,加密码锁,PKCS-7填充.解密算法应该用一个16字节的零填充初始化向量初始化,并且应该使用您的加密密钥(可以在PayWay网购购物车设置的安全页面上找到)。
示例加密参数: =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错了吗?在这里疯了。
发布于 2020-06-17 03:00:06
解决方案是在尝试解密之前先对密码/秘密密钥进行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;https://stackoverflow.com/questions/62420675
复制相似问题