逛推的时候发现个txtmoji,将文字加密后用 emoji 的形式输出,但是没看到作者贴源码,虽然看上去这个功能完全是在前端实现的,但是没好意思直接去看它的源码,就想着复制一个试试。
我的思路很简单,加密算法可以得到一个字节数组,那么就构建一个长度 256 的 emoji 字符数组,将加密结果当作索引数组,得到一串 emoji 字符串,解密时再反向查回来就行。
原本想着 10 分钟就能搞定,结果在解密时总是遇到奇怪的解码问题。在想尽了各种可能后,突然意识到每次在 emoji 反向查找索引时,总会在一些特定的位上和原数据产生一个固定大小的偏差,该不会是我的 emoji 列表里有重复吧(因为懒得整理所以 emoji 列表是 ChatGPT 生成的),结果发现 GPT 在生成的 emoji 列表里悄悄塞了几个重复的……