Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sorting 我可以对base32/64编码的MD5哈希进行alpha排序吗?_Sorting_Hash_Base64_Base32 - Fatal编程技术网

Sorting 我可以对base32/64编码的MD5哈希进行alpha排序吗?

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

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

为了加快排序操作(并使文件更小),我考虑将数据编码为base32或base64

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

AAABw1roPO/iRdJV/8TOEQ==
AAAD5LEQ/mN+C0Fys4asrA==
AAAEqtDrPYlrZUqWCwER+g==
但我不确定Base64中使用的特殊字符(如“/”和“+”)的排序顺序,以及在alpha排序上下文中如何处理这些字符


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

我后来发现,对于标准的base32/64实现,这是不可能的。然而,存在一个名为“”的base32变体,它保留排序顺序,但没有官方的“base64hex”等价物

看起来这样就可以创建自定义编码了

编辑: 事实证明,这是一个非常琐碎的问题。只需在base 64中编码,然后使用符合排序顺序的自定义字符表将字符转换为字符

只需从标准Mime 64个字符映射即可:

  "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
对这样的事情:

  "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz|~"
然后分类就行了

  "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz|~"