php在双向加密算法中加密数据如何比输入数据短?

时间:2013-08-06 22:09:16

标签: php encryption

我为加密创建了加密方法,解密了重要数据。 我的加密方法的样本:

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

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

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

怎么可能?

2 个答案:

答案 0 :(得分:2)

您没有说(或向我们展示)您的加密算法是什么。您也没有提供支持您的问题的示例(您提供的示例显示相反的情况)

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

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

答案 1 :(得分:1)

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

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

我使用此网站对其进行了压缩:http://www.unit-conversion.info/texttools/compress/

1111111111222222222233333333334444444444555555555566666666667777777777
888888888899999999990000000000

结果是:

eNo9wbEBABAMALCXlFL+f8zUJBFtskg2h+LyGHz9kBSD