PHP:最小化加密值


PHP: Minify crypted value

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

0TJyj0wX4ZCrsYlANG8QgwBHnGzGU7kr1BEkolr6tY0OdowpA==
Better: 73a4842f36b4n237m64as23

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

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

  • 使用无损压缩算法——尽管这种方法不太可能带来太多好处,因为加密数据压缩效果不好,而且对于某些输入集,压缩实际上会增加存储需求
  • 在加密数据之前先压缩数据。根据输入的大小,单独加密(取决于算法)可能会将数据大小减少几个百分点,但通常不会超过5-10%(同样,这个答案指出了这一点)
  • 用更高的"基数"重新编码数据(即,您的字符串是Base64,您可以切换到Base85),但这只会节省7%

您可以使用RSA对数据进行加密看到这里,它谈到了在php中加密

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

加密和解密示例。

我也建议使用base64对加密结果进行编码。

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