我在一个 PHP 应用程序中工作,我们有一个特定的字符串,我们需要在将其存储到数据库之前对其进行加密。我可以在 PHP 中使用带有 key 和 iv 的 mcrypt 没有问题。目前我正在尝试使用河豚,因为我认为就在 ColdFusion 中解密而言,它是最灵活的。我遇到的问题是 ColdFusion 似乎不想使用我加密的 key 或 iv。 ColdFusion 希望您生成 SecretKey() 并使用其他方式创建 iv。
我似乎无法做到的是让两者进行交流。我首先尝试在 coldFusion 中加密并使用它生成的 key 和它在 PHP 中使用的 iv 但结果不是它应该是的。我知道我一定遗漏了什么,但我不能完全确定它可能是什么。
<?php
$securedString = mcrypt_encrypt ('MCRYPT_BLOWFISH' , 'THISISMYKEYTHATISVERYLONG32CHARS' , "This is the string I need encrypted' , MCRYPT_MODE_CBC , '12345678');
echo base64_encode($securedString);
?>
那么等效的 ColdFusion 解密调用会是什么样子?
顺便说一句:如果 Blowfish 不是理想的算法,请随时提出另一个建议,只要 ColdFusion 和 PHP 都可以使用它并且它是安全的。
谢谢, 布鲁斯
最佳答案
像这样的东西应该可以工作。您只需要在每个人之间共享一个公共(public) key 。
在 PHP 中:
base64_encode(mcrypt_encrypt(MCRYPT_3DES, $key, $plain_string, MCRYPT_MODE_ECB));
在 Coldfusion 中:
<cfscript>
decrypted_string = decrypt(enc_string, key, "DESEDE", "Base64");
</cfscript>
关于PHP mcrypt 到 ColdFusion 解密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8089086/