模糊字符串的最佳方法是什么(Java - 序列化)



隐藏String

的最佳方法是什么?

出于学习目的,我决定更深入地研究Java序列化,其中大部分都很好。然而,当我试图将简单的模糊应用于字符串值时,我遇到了这个奇怪的问题。

情况分解:我正在寻找"模糊"不加密从配置文件创建框架传递的某些数据。添加简单的噪音到所有配置文件的详细信息,如配置文件用户名,密码,姓名,姓氏等

期望的结果是简单的,有时工作,有时它只是错过某些字符。例子:

配置文件名称:"John"然后变成"~nh#j@o^",当然再消隐回"John"

问题在隐晦的部分表现出来。我正在打印结果以检查是否一切正常,而不是"John",它将失去某些字符(1-2)并继续添加字符,如下所示:

配置文件名称: "John"然后变成"~n#j@o^ "然后去模糊化为"Jon"

这是个奇怪的问题。我看了一下周围的文章,模仿了一下模糊的风格,这样我就不会太偏离了。

下面是一个例子,我的个人资料名称是如何隐藏的:

                String nFirstCut = p.getName().substring(0, nSplit); //The first 'slice'
                String nSecondCut = p.getName().substring(nSplit+1, nSplit*2); //The second 'slice'
                String nThirdCut = p.getName().substring(nSplit*2+1); //The third 'slice'
                /*
                 * New Obscured name is now - second 'slice' + randomCharacter + first 'slice'
                 * + randomCharacter + third 'slice'
                 */
                String nObcName = nSecondCut + obcChars[q] + nFirstCut
                        + obcChars[r] + nThirdCut + obcChars[s];
                p.setName(nObcName);

注意: nSplit是简单的getName()的长度除以3(产生3个'切片')

还想添加。当试图从jpasswordfield# getPassword()中模糊密码而不是jtextfield# getText()时,这要糟糕得多。不确定为什么

看起来像并发问题,也许您可以尝试将方法调用p.t getname()提取到本地变量中,以确保您正在使用相同的name

实例

看看Jetty是怎么做的:https://gist.github.com/slevental/0c902da60a1f6f931420

相关内容

  • 没有找到相关文章

最新更新