PHP:缩小加密值

时间:2012-03-21 20:51:54

标签: php encryption crypt

是否有可能转换加密字符串(类似于md5),而不会失去再次解码的能力?

0TJyj0wX4ZCrsYlANG8QgwBHnGzGU7kr1BEkolr6tY0OdowpA==

Better: 73a4842f36b4n237m64as23

3 个答案:

答案 0 :(得分:2)

根据定义,哈希是单向的。您将无法对加密的字符串进行哈希处理,然后“取消哈希”它以再次获取加密字符串。

但是,您可以尝试通过以下方式“缩小”加密字符串:

  • 使用无损压缩算法 - 尽管由于加密数据不能很好地压缩,并且对于某些输入集压缩can actually increase the storage requirements,这种方法不太可能获得太多收益。
  • 在加密数据之前压缩数据。根据输入的大小,单独使用加密可以减小几个百分点(取决于算法),但通常不会超过5-10%(再次,this answer指出这一点)< / LI>
  • 使用较高的“基数”对数据进行重新编码(即您的字符串为Base64,您可以切换为Base85) - 但这只会产生7% savings

答案 1 :(得分:0)

您可以使用RSA加密数据 见this,它谈到了php中的crypt

答案 2 :(得分:0)

在PHP中加密的最佳方法是使用Mcrypt扩展。 http://www.php.net/manual/en/book.mcrypt.php

encryptiondecryption的示例。

我还建议base64编码加密结果。

缩小对小数据(例如密码)没有意义。