我想在服务器端应用程序中压缩或压缩来自 MD5 或 SHA1 的结果哈希值,以便在客户端可以对其进行解压缩或解压缩,这可能吗?这是我的应用程序的可用性问题。
不可以,哈希值无法被压缩。通过设计,它们的位是高度随机的并且具有最大熵,因此没有可压缩的冗余。
如果您想让用户更容易阅读哈希值,您可以使用不同的技巧,例如:
显示较少的数字。而不是 32 位数字,只显示 16。
使用不同的底座。例如,如果您使用所有大写和小写字母加上数字 0-9 作为数字的基数 62,那么您可以使用 22 个字母+数字与 32 个十六进制数字来显示 128 位哈希:
对数62 (2 128 ) ≈ 21.5
添加空格或标点符号。您通常会看到印有破折号的 CD 密钥,例如 AX7T4-BZ41O-JK3FF-QOZ96。对于用户来说,这比 20 位挤在一起的数字更容易阅读。