如何独特地混淆字符串?

时间:2015-03-23 19:05:48

标签: java

我有一个巨大的字符串列表,它们具有任意长度。我知道想要以保证某些标准的方式对字符串进行模糊处理:

  • 混淆的字符串必须是唯一的
  • 应该没有简单的方法来撤消混淆

是否有任何框架可以帮我这么做?

3 个答案:

答案 0 :(得分:1)

如果您需要对程序中的字符串进行混淆处理,以便在检查可执行文件时不仅仅使用字符串或十六进制工具显示它们,那么此开源工具可能会很有用,您不必一定要甚至在运行时对这些字符串进行加密和解密。

相反,您可以结合使用以下任何一种方法:

  1. 将每个字符存储为数字表达式(即代替“ C”分配60 + 7);

  2. 添加“垃圾数据”(即,在空字符之后,之后再分配更多的值,当然要使用足够大的字符串来容纳额外的字符;

  3. 最后,以随机顺序放置分配(即分配char 3,然后分配1,然后分配2,依此类推)。

请参见此Github回购中的示例。

答案 1 :(得分:0)

听起来你想要散列。 Google Guava Hashing API提供了一些很好的实现,可以满足您的需求。你会想要选择一个没有碰撞的。

答案 2 :(得分:0)

如果您需要对程序中的字符串进行混淆处理,以便在检查可执行文件时不仅仅使用字符串或十六进制工具显示它们,那么this开源工具会很有用。参见Code Project article