如何以尽可能最小的可打印方式表示 32 字节的二进制数据

发布于 2024-11-08 15:46:17 字数 264 浏览 0 评论 0原文

我有一些数据的 sha256 哈希值,它是注册系统的产品 ID。我想将此信息提供给最终用户,并且希望它仅包含可打印字符(最好是 az、AZ 和 0-9)。我尝试了常规的十六进制和 Base64,但它们都产生了很长的结果,但结果并不令人满意。我希望以尽可能小的格式用字母数字字符表示数据,但又不失去完整性。请注意,数据不需要转换回来,因此只要不丢失安全性,它可以是单向过程。

我在 C 工作。

提前感谢您对此的任何帮助!

亲切的问候,

菲利普·本尼法尔

I have a sha256 hash of some data that is a product ID for a registration system. I want to give this information to the end user, and I wish it to contain only printable characters (preferably a-z, A-Z and 0-9). I tried regular hex and base64, but they both produce very long results that are not satisfactory. I wish to represent the data in as small a format as possible in alphanumeric characters, but without losing integrity. Note that the data does not need to be converted back, so it can be a one-way process as long as no security is lost.

I am working in C.

Thanks in advance for any help on this!

Kind regards,

Philip Bennefall

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

墨离汐 2024-11-15 15:46:17

32 字节的数据将很难在不支持剪切/粘贴的介质中有意义地提供给用户,无论您如何表示它。

减少用于产品 ID 的数据量,您可以使用 Base-64 等。

32 bytes of data is going to be very difficult to meaningfully provide to a user in a medium that doesn't support cut/paste, however you represent it.

Lessen the amount of data you're using for the product ID and you can use Base-64 and friends.

北笙凉宸 2024-11-15 15:46:17

如果 Base64 不足以满足您的 32 字节,MD5 可以将其减少到 16 字节 - shazam,现在它的长度是原来的一半。

为什么,是的,将 32 字节哈希值哈希到 16 字节是荒谬的,但这基本上就是您要求做的,无论它是 16 字节还是任何其他字节数。你会丢失信息。

或者直接使用 MD5,因为它的哈希值较小。

如果用户不打算输入这个数字,那么这个表示到底有多重要?所有这些长哈希转储都是难以理解的。当我看到它们时,我只会看最后 3 个字符。

If Base64 isn't adequate for your 32 bytes, MD5 it down to 16 bytes -- shazam, now it's half as long.

Why, yes it is absurd to hash a 32 byte hash down to 16 bytes, but that's basically what you're asking to do, whether it's 16 or any other number of bytes. You WILL lose information.

Or simply use MD5 to begin with, since it's a smaller hash.

If the user isn't going to key this number in, how important is the representation anyway? All of these long hash dumps are inscrutable. When I see them I just look at the last 3 characters anyway.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文