Mcrypt在PHP中加密/解密的替代方案?

时间:2011-04-21 02:18:18

标签: php drupal encryption mcrypt

我正在为需要进行加密和解密的Drupal模块提供一些代码。我不认为我可以假设Mcrypt模块安装在Drupal系统上。我可以使用什么作为替代加密机制?

这不适用于财务方面,所以我不需要复杂的密码学,但更好的是... ...

4 个答案:

答案 0 :(得分:6)

如何使用您的数据库? MySQL具有AES和DES加密和解密功能。然后,您可以使用“假”查询来获取字符串:

select id, aes_encrypt('My secret text', 'the key string') 
from permissions 
limit 1

(如果表中没有至少一个字段,MySQL将返回一个空集。)

解密以同样的方式工作。它是128位AES,这在加密方面也不算太差,如果你甚至不能确定MCrypt,我怀疑你会重新编译MySQL以获得256位AES。

答案 1 :(得分:2)

有几种加密PHP代码的方法,使用密钥加密/解密代码使其更安全,作为MCrypt的替代。

一种方法是创建一个可能需要密钥才能完成加密或解密的功能。 PHP有内置函数,如gzdeflate()gzinflate(),另一个使用base64_encode() / base64_decode()str_rot13()函数。

但我不认为使用PHP Encoder会有效。

答案 2 :(得分:1)

Encryption module模块默认包含一种基本加密方法,它描述为“一种不需要任何PHP扩展的简单数学加密方法。”

答案 3 :(得分:1)

根据Leon的回答,PHP Encoder正在使用可能无法在Drupal上运行的MCrypt模块。另一种方法是使用IonCube Encoder。

如果您想要更严格的功能,您也可以尝试使用hash()md5()功能来创建密钥,并在加密函数时使用gzdeflate() /的返回值gzinflate()符合Leon的建议。