PHP有什么东西可以将长字符串散列/加密成128位字符串,也可以反转?
我正在尝试将数以百万计的字符串导入MySQL数据库,平均字符串超过100个字符,MD5将其减少到32个字符,这大大减少了存储空间,但我无法在我的应用程序中再次反转。
PHP有什么可以处理的吗?
答案 0 :(得分:1)
如果我理解你的问题,在我看来你混淆散列和压缩很多。
大多数哈希函数都不容易逆转,因为这不是他们的目的。有无限的" Strings / ByteStreams / Numbers /..."对应于散列函数的结果。您可能知道,即使是几千兆字节的图像,也会给你一个32个字符的md5sum。
你不能只是将任何字符串神奇地映射到一个更短的固定长度的字符串,以便能够将它神奇地放回原来的字符串。
如果你知道你的目标结果必须具有这个和那个属性(在你的情况下可能是100-120的字符长度),那么一些哈希函数可以非常有效地用于反转它们的进程,但我对此表示怀疑。
或者我完全误解了你只是用表达式" 128位字符串"表示ASCII字符串?
答案 1 :(得分:1)
不,你不能这样做:Pigeonhole principle