我在PHP应用程序中工作,我们有一个特定的字符串,我们需要在存储到数据库之前进行加密。我可以在PHP中使用带有密钥和iv的mcrypt没有问题。目前我正在尝试使用blowfish因为我认为在ColdFusion中解密它会是最灵活的。我遇到的问题是看起来ColdFusion似乎不想使用密钥或iv加密。 ColdFusion希望你使用generateSecretKey()并使用其他方法来创建iv。
我似乎无法做的就是让两人沟通。我首先尝试在coldFusion中加密并使用它生成的密钥,然后在PHP中使用它,但结果并非如此。我知道我必须遗漏一些东西,但我无法确定它可能是什么。
<?php
$securedString = mcrypt_encrypt ('MCRYPT_BLOWFISH' , 'THISISMYKEYTHATISVERYLONG32CHARS' , "This is the string I need encrypted' , MCRYPT_MODE_CBC , '12345678');
echo base64_encode($securedString);
?>
那么等效的ColdFusion解密调用会是什么样的呢?
BTW:如果Blowfish不是理想的算法,只要ColdFusion和PHP都可以使用它并且它是安全的,请随意建议另一个。谢谢, 布鲁斯
答案 0 :(得分:1)
这样的事情应该有效。您只需要在每个之间共享一个公共密钥。
在PHP中:
base64_encode(mcrypt_encrypt(MCRYPT_3DES, $key, $plain_string, MCRYPT_MODE_ECB));
在Coldfusion中:
<cfscript>
decrypted_string = decrypt(enc_string, key, "DESEDE", "Base64");
</cfscript>