Sorting 我可以对base32/64编码的MD5哈希进行alpha排序吗?
我有一个十六进制编码的MD5值的大文件,我正在使用linux“sort”实用程序进行排序。结果是散列按顺序出现(这是我下一阶段处理所需要的)。例如: 为了加快排序操作(并使文件更小),我考虑将数据编码为base32或base64 问题是,base32/64数据的alpha排序会得到相同的结果吗?我的快速测试似乎表明它会起作用。例如,上述三个十六进制字符串与这些base64字符串的比例为1:1:Sorting 我可以对base32/64编码的MD5哈希进行alpha排序吗?,sorting,hash,base64,base32,Sorting,Hash,Base64,Base32,我有一个十六进制编码的MD5值的大文件,我正在使用linux“sort”实用程序进行排序。结果是散列按顺序出现(这是我下一阶段处理所需要的)。例如: 为了加快排序操作(并使文件更小),我考虑将数据编码为base32或base64 问题是,base32/64数据的alpha排序会得到相同的结果吗?我的快速测试似乎表明它会起作用。例如,上述三个十六进制字符串与这些base64字符串的比例为1:1: AAABw1roPO/iRdJV/8TOEQ== AAAD5LEQ/mN+C0Fys4asrA== A
AAABw1roPO/iRdJV/8TOEQ==
AAAD5LEQ/mN+C0Fys4asrA==
AAAEqtDrPYlrZUqWCwER+g==
但我不确定Base64中使用的特殊字符(如“/”和“+”)的排序顺序,以及在alpha排序上下文中如何处理这些字符
注意:我碰巧正在使用linux排序实用程序,但这个问题仍然适用于其他alpha排序工具。使用的工具并不是问题的一部分。我后来发现,对于标准的base32/64实现,这是不可能的。然而,存在一个名为“”的base32变体,它保留排序顺序,但没有官方的“base64hex”等价物 看起来这样就可以创建自定义编码了 编辑: 事实证明,这是一个非常琐碎的问题。只需在base 64中编码,然后使用符合排序顺序的自定义字符表将字符转换为字符 只需从标准Mime 64个字符映射即可:
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
对这样的事情:
"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz|~"
然后分类就行了
"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz|~"