2

我为加密、解密重要数据创建了加密方法。我的加密方法示例:

$str='some important text'; // 19 
// encrypted $str : 'A6oLM5{!lr4Y9xON4-55Tty%>6A4vgU^893cGv)g' // 40

如您所见,输入长度为 19,输出为 40

我发现了一些加密数据比输入数据短的双向加密方法。

这怎么可能?

4

2 回答 2

2

您还没有说(或向我们展示)您的加密算法是什么。你也没有提供一个例子来支持你的问题(你提供的例子正好相反)

简短的回答是它并不短——加密数据不可能小于源数据——任何好的加密算法都不会简单地替换单个字符,而是根据输入序列生成输出。通常它是密钥大小的倍数并且大于输入。

您似乎看到较短的输出是由于输入在加密之前被压缩。

于 2013-08-06T22:15:00.377 回答
1

我还怀疑您考虑了一些哈希算法,例如 md5、sha 等,它们为任何给定数据提供固定长度的结果。

另一种可能性是压缩,例如:

我使用这个网站压缩了这个:http ://www.unit-conversion.info/texttools/compress/

1111111111222222222233333333334444444444555555555566666666667777777777
888888888899999999990000000000

结果是:

eNo9wbEBABAMALCXlFL+f8zUJBFtskg2h+LyGHz9kBSD
于 2013-08-06T22:25:40.193 回答