我想用传递给服务器的PHP解密加密字符串(在Nodejs中加密)。
我找到了完美的Nodejs加密/解密库:
Cryptr
现在基本上我想解密这个字符串。
看看
Cryptr source
,似乎他们在使用
aes-256-ctr
sha256
作为加密方法。
加密字符串:
1d510024ad0a5da624b76a2be72022bff3aaadfe8ac5e0b6c178b00333
然后我在PHP中执行以下操作:
$encrypted = "1d510024ad0a5da624b76a2be72022bff3aaadfe8ac5e0b6c178b00333";
$algorithm = "aes-256-ctr";
$secret_key = "myTotalySecretKey";
$iv = "";
$decrypted_data = openssl_decrypt(pack('H*', $encrypted), $algorithm, $secret_key, OPENSSL_RAW_DATA, $iv);
echo $decrypted_data;
但是既然IV是在Cryptr中随机生成的,那么我如何在PHP中生成这个呢?
如何使用PHP解密cryptor加密的字符串,使其返回“我爱比萨!”?
编辑:
相反,请只使用$encrypted尝试打包('H*',$encryd)。此外,您只需要数据、方法和密钥来解密。
$encrypted = "1d510024ad0a5da624b76a2be72022bff3aaadfe8ac5e0b6c178b00333";
$algorithm = "aes-256-ctr";
$secret_key = "myTotalySecretKey";
$decrypted_data = openssl_decrypt($encrypted, $algorithm, $secret_key);
echo $decrypted_data;