当前位置: 首页 > 面试题库 >

简短的,不区分大小写的字符串混淆策略

夏侯自珍
2023-03-14
问题内容

我正在寻找一种方法来标识(即编码
解码)带有一个令牌的一组Java字符串。标识不应涉及数据库持久性。到目前为止,我已经研究了Base64编码和DES加密,但是就以下要求而言,两者都不是最佳选择:

  • 令牌应尽可能短
  • 令牌应该对大小写不敏感
  • 令牌应在URLEncoder / Decoder往返过程中幸免(即将在URL中使用)

是Base32是我最好的镜头,还是有更好的选择?请注意,我主要对缩短和混淆集合感兴趣,加密/安全性并不重要。


问题答案:

文本的结构(即一组字符串)是什么?您可以利用对它的了解来对它进行简短编码。例如,如果您有一个大的十进制基数“
1234567890”,则可以将其转换为36个基数,该基数将更短。

否则,看起来您正在尝试发明通用存档器。

如果您不关心长度,那么可以,唯一的选择是使用基于字母的编码器(例如Base32)进行处理。

另外,如果文本足够大,也许可以通过gzip压缩节省一些空间。



 类似资料:
  • 需要制作一个密码程序,用户在开始时设置密码,在程序停止前可以输入密码3次。该程序不能区分大小写。 程序按预期打印,但不区分大小写

  • 问题内容: 如何以不区分大小写的方式比较字符串? 例如,“ Go”和“ go”应视为相等。 问题答案: https://golang.org/pkg/strings/#EqualFold是您要寻找的功能。它的用法如下(来自链接文档的示例):

  • 问题内容: 如何以 不区分大小写的 方式在文件中搜索单词? 例如 如果我正在文件中搜索,如果文件包含更新,则搜索应将其选中并将其视为匹配项。 问题答案: 可以在忽略大小写的情况下检查两个字符串是否相等。它甚至可以与Unicode一起使用。有关更多信息,请参见http://golang.org/pkg/strings/#EqualFold。 http://play.golang.org/p/KDdI

  • 问题内容: 我需要不区分大小写地突出显示JavaScript字符串中的给定关键字。 例如: 应该回来 我需要用于任何关键字的代码,因此使用像硬编码的正则表达式这样的解决方案还不够。 最简单的方法是什么? (这是标题中详述的更一般问题的实例,但我认为最好用一个具体,有用的示例来解决。) 问题答案: 你 可以 ,如果你准备搜索字符串使用正则表达式。在PHP中,例如有一个函数preg_quote,它用转

  • 问题内容: 由于以下原因,我想使用不区分大小写的字符串作为HashMap键。 在初始化期间,我的程序使用用户定义的String创建HashMap。 在处理事件(在我的情况下为网络流量)时,我可能会在其他情况下收到String,但是我应该能够忽略HashMap中的来自我的情况而从HashMap 定位。 我遵循了这种方法 LookupCode.java 因此,我为每个事件创建一个CaseInsensi