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