gpt4 book ai didi

sorting - 我可以对 Base32/64 编码的 MD5 哈希值进行 alpha 排序吗?

转载 作者:行者123 更新时间:2023-12-02 18:00:52 28 4
gpt4 key购买 nike

我有一个巨大的十六进制编码 MD5 值文件,我正在使用 linux 'sort' 实用程序对其进行排序。结果是哈希值按顺序出现(这是我下一阶段处理所需的)。例如:

000001C35AE83CEFE245D255FFC4CE11 
000003E4B110FE637E0B4172B386ACAC
000004AAD0EB3D896B654A960B0111FA

为了加快排序操作(并使文件更小),我正在考虑将数据编码为 Base32 或 Base64。

问题是,base32/64 数据的 alpha 排序会得到相同的结果吗?我的快速测试似乎表明它会起作用。例如,上面的三个十六进制字符串与这些 Base64 字符串是 1:1 对应的:

AAABw1roPO/iRdJV/8TOEQ==
AAAD5LEQ/mN+C0Fys4asrA==
AAAEqtDrPYlrZUqWCwER+g==

但我不确定 Base64 中使用的特殊字符(如“/”和“+”)的排序顺序,以及在 alpha 排序的上下文中如何处理这些字符。

注意:我碰巧使用的是 Linux 排序实用程序,但问题仍然适用于其他 alpha 排序工具。使用的工具并不是问题的一部分。

最佳答案

我后来发现标准的 base32/64 实现不可能做到这一点。然而,存在一个名为“base32hex ”的 Base32 变体,它保留排序顺序,但没有官方的“base64hex”等效项。

看起来需要创建一个自定义编码 like this

编辑:事实证明,解决这个问题非常简单。只需以 Base 64 进行编码,然后使用遵循排序顺序的自定义字符表将字符转换为字符。

简单地从标准 Mime 64 字符映射:

  "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"

对于这样的事情:

  "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz|~"

然后排序就可以了。

关于sorting - 我可以对 Base32/64 编码的 MD5 哈希值进行 alpha 排序吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37470432/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com