我为加密创建了加密方法,解密了重要数据。 我的加密方法的样本:
$str='some important text'; // 19
// encrypted $str : 'A6oLM5{!lr4Y9xON4-55Tty%>6A4vgU^893cGv)g' // 40
如您所见,输入长度为19,输出为40
我发现了一些双向加密方法,加密的数据比输入数据短。
怎么可能?
答案 0 :(得分:2)
您没有说(或向我们展示)您的加密算法是什么。您也没有提供支持您的问题的示例(您提供的示例显示相反的情况)
简短的回答是它不会更短 - 加密数据不可能小于源数据 - 任何好的加密算法都不能简单地替换单个字符,而是根据输入序列生成输出。通常,它是密钥大小的倍数,并且大于输入。
您似乎看到较短的输出是由于输入在加密之前被压缩。
答案 1 :(得分:1)
我怀疑您还考虑了一些散列算法,例如md5,sha等,它们为任何给定数据提供固定长度的结果。
另一种可能性是压缩,例如:
我使用此网站对其进行了压缩:http://www.unit-conversion.info/texttools/compress/
1111111111222222222233333333334444444444555555555566666666667777777777
888888888899999999990000000000
结果是:
eNo9wbEBABAMALCXlFL+f8zUJBFtskg2h+LyGHz9kBSD