sorting - base64 编码是否保留字母顺序?
问题描述
假设我有一个 100 个单词的列表,按字母顺序排序。如果我对这些单词进行base64编码,然后再次对结果列表进行排序,如果元素相同,排序是否会发生?
如果没有,是否有任何其他编码算法可以为我提供这种行为?
解决方案
不,base64 不保留未编码字符串的排序顺序。
这在 RFC 4648 中进行了解释,它还定义了一种称为 base32hex 的编码,它特别保证它保持排序顺序。
如果您想坚持使用官方标准,base32hex 是我所知道的最佳选择。
但是,如果您的编码的空间效率很重要,那么从 base64 降到 base32 有点令人失望。如果是这种情况,您总是可以创建自己的编码(这并不难)或采用其他人的编码(JavaScript 示例:https ://github.com/dominictarr/d64 )。
推荐阅读
- javascript - VS Code 终端未运行
- doctrine-orm - 如何在学说 findBy 条件中应用平等标准?
- android - 如何清除图像中的条纹?android camera2 fps或条带问题
- sql - SQL Server 标识号不连续
- apache-spark - 火花读取过滤器和数据帧/sql过滤器之间的性能是否存在差异(早期应用与以后应用)
- angular - Angular - for 循环后的顺序执行代码
- runtimeexception - d8 dex 编译因脱糖而失败
- javascript - 为什么不能在捕获的组上使用函数(并且有解决方法)?
- google-apps-script - 即使我从文档中复制粘贴了确切的代码,谷歌 Appscript 仍显示错误
- asp.net - 带有引导表插件的 ASP.NET CORE 3 frombody NULL