我正在寻找一种方法来识别(即编码 和 解码)一组具有一个标记的 Java 字符串。标识不应涉及数据库持久性。到目前为止,我研究了 Base64 编码和 DES 加密,但就以下要求而言,两者都不是最佳选择:
- token尽量短
- token 应该对大小写不敏感
- token 应该在 URLEncoder/Decoder 往返过程中存活(即,将在 URL 中使用)
Base32 是我最好的选择还是有更好的选择?请注意,我主要对缩短和混淆集合感兴趣,加密/安全性并不重要。
最佳答案
文本的结构(即字符串集)是什么?您可以使用您对它的了解以缩短的形式对其进行编码。例如。如果你有大的十进制数“1234567890”,你可以将它翻译成 36 进制数,这样会更短。
否则看起来您正在尝试发明一个通用归档器。
如果您不关心长度,那么是的,通过基于字母表的编码器(例如 Base32)进行处理是唯一的选择。
此外,如果文本足够大,也许您可以通过 gzip 压缩来节省一些空间。
关于java - 简短的、不区分大小写的字符串混淆策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8134311/