我想知道是否有办法“测试”以查看特定字符串是否加密。 我正在使用Crypt :: CBC来加密Rijndael的密码。
现在我的脚本有一个“开关”,设置为0或1,告诉脚本天气,密码需要通过解密阶段才能被读取。
如果可以的话,我想消除那个阶段。
原因是我试图阻止脚本的用户在密码加密但“switch”设置为0意味着没有加密的情况下可能对脚本进行prsenting,因为这会产生巨大的“trainwreck”。
答案 0 :(得分:3)
更改您的应用,以便密码仅以加密方式存储。混乱消失了。
答案 1 :(得分:1)
Rijndael的块大小为128位,因此输出总是这个的倍数。
如果加密的密码是十六进制编码的,那么这将为您提供32个字符的倍数的字符串。实际上,添加IV后,字符串将始终至少为64个字符:IV为128位,后跟128位密文块1.
因此,您可以查找仅包含[0-9a-f]
的正确长度的字符串。它们可能加密,因为我怀疑很少有人可以使用64个字符的随机字符串作为真正的密码。
如果它们是base64编码的话,那么字符串的长度就会不同了。
这并不能保证您始终能够检测到加密密码,但这可能并不算太糟糕。