128 位可逆 encryptor/hasher 以减少 DB 大小
128 bit reversible encryptor/hasher to reduce DB size
PHP 是否有任何东西可以 hash/encrypt 将长字符串转换为也可以反转的 128 位字符串?
我正在尝试将数亿个字符串导入 MySQL 数据库,平均字符串超过 100 个字符,MD5 将其减少到 32 个字符,这显着减少了存储,但是我无法在我的数据库中再次反转它申请。
PHP 是否有任何可用的方法可以处理此问题?
如果我对你的问题的理解正确,在我看来你混淆了很多散列和压缩。
大多数散列函数都不容易逆向,因为那不是它们的目的。有无限个 "Strings/ByteStreams/Numbers/..." 对应于哈希函数的结果。您可能知道,即使是几 GB 大的图像,也会为您提供 32 个字符的 md5sum。
您不能只是神奇地将任何字符串映射到更短的固定长度的字符串,以便能够神奇地将它膨胀回其原始字符串。
很可能,如果您知道您的目标结果必须有这个和那个 属性(在您的情况下可能是字符长度100-120),但我对此表示怀疑。
还是我完全误解了,你只是指 ASCII 字符串,表达式为“128 位字符串”?
不,你不能这样做:Pigeonhole principle
PHP 是否有任何东西可以 hash/encrypt 将长字符串转换为也可以反转的 128 位字符串?
我正在尝试将数亿个字符串导入 MySQL 数据库,平均字符串超过 100 个字符,MD5 将其减少到 32 个字符,这显着减少了存储,但是我无法在我的数据库中再次反转它申请。
PHP 是否有任何可用的方法可以处理此问题?
如果我对你的问题的理解正确,在我看来你混淆了很多散列和压缩。
大多数散列函数都不容易逆向,因为那不是它们的目的。有无限个 "Strings/ByteStreams/Numbers/..." 对应于哈希函数的结果。您可能知道,即使是几 GB 大的图像,也会为您提供 32 个字符的 md5sum。
您不能只是神奇地将任何字符串映射到更短的固定长度的字符串,以便能够神奇地将它膨胀回其原始字符串。
很可能,如果您知道您的目标结果必须有这个和那个 属性(在您的情况下可能是字符长度100-120),但我对此表示怀疑。
还是我完全误解了,你只是指 ASCII 字符串,表达式为“128 位字符串”?
不,你不能这样做:Pigeonhole principle