测试一个字符串是否已使用php中的mcrypt_encode加密?

时间:2012-01-30 15:35:48

标签: php mcrypt

PHP中是否有办法测试字符串是否已使用mcrypt_encrypt加密?

3 个答案:

答案 0 :(得分:1)

大概你的意思是mcrypt_encrypt()?没有mcrypt_encode()函数。

没有。正确加密的字符串应该与随机垃圾无法区分。测试加密字符串以查看它是否被加密的唯一方法是解密它。

答案 1 :(得分:1)

你没有具体说明你真正关心的事情,但是:

某些数据是否已加密并不取决于使用了哪种加密功能,而是取决于哪种加密算法。比方说,如果有人在PERL或PHP中加密了某些内容 - 你无法通过加密字符串来判断。

因此,这不适用于mcrypt_encrypt。该功能不会在加密数据中留下任何符号。

但是,如果您拥有密钥和原始文本(普通文本)以及算法,则可以撤消mcrypt_encryptmcrypt_decrypt所做的操作。然后你可以比较平原,如果它们匹配,你可以说平原是用特定的密钥和算法加密的。

由于我们正在谈论加密,通常情况并非如此,你没有简单。

但是,您可以创建plain的校验和并对其进行加密。然后,您可以稍后对其进行解密,并将其与您加密的平面的校验和进行比较,以判断数据是否已成功解密。但是,如图所示,这实际上是加密数据旁边的附加信息。

如果您要添加更多信息,可能会提供更多有用的建议。

答案 2 :(得分:0)

加密时为字符串添加一些静态文本;当cheking使用mcrypt_encode再次使用静态文本时,这次没有原始字符串,看加密的静态文本是否存在于加密字符串中。它应该工作