有没有办法测试字符串是否在perl中加密?

时间:2010-12-09 01:41:11

标签: perl encryption

我想知道是否有办法“测试”以查看特定字符串是否加密。 我正在使用Crypt :: CBC来加密Rijndael的密码。

现在我的脚本有一个“开关”,设置为0或1,告诉脚本天气,密码需要通过解密阶段才能被读取。

如果可以的话,我想消除那个阶段。

原因是我试图阻止脚本的用户在密码加密但“switch”设置为0意味着没有加密的情况下可能对脚本进行prsenting,因为这会产生巨大的“trainwreck”。

2 个答案:

答案 0 :(得分:3)

更改您的应用,以便密码仅以加密方式存储。混乱消失了。

答案 1 :(得分:1)

Rijndael的块大小为128位,因此输出总是这个的倍数。

如果加密的密码是十六进制编码的,那么这将为您提供32个字符的倍数的字符串。实际上,添加IV后,字符串将始终至少为64个字符:IV为128位,后跟128位密文块1.

因此,您可以查找仅包含[0-9a-f]的正确长度的字符串。它们可能加密,因为我怀疑很少有人可以使用64个字符的随机字符串作为真正的密码。

如果它们是base64编码的话,那么字符串的长度就会不同了。

这并不能保证您始终能够检测到加密密码,但这可能并不算太糟糕。