0

我正在创建一个将获取调查类型数据的网络应用程序。用户会看到几个文件并询问一个问题。用户希望不歪曲数据,一定不能知道文件的文件名。

为 JPlayer 实例创建了一个空的 div,我已将“位置”属性添加到 div,因此在客户端设置 JPlayer 实例时,JPlayer 知道要播放什么 .wav

 <div id="jquery_jplayer" class="jp-jplayer" location="sound.wav"></div> 

这是设置要播放的声音的javascript的一部分,在这里很容易看到文件位置只是从div中拖出来的

$("#jquery_jplayer").jPlayer("setMedia", {
    wav: $(this).attr("location")
});

基本上,目的是从 HTML 文档中隐藏“sound.wav”并保持 javascript 动态。混淆和去混淆之间的翻译文件是可能的,但保持这种动态会很好。

4

1 回答 1

3

如果您想真正向观众隐藏逻辑,那么您需要在服务器端而不是客户端 JavaScript 中进行。您可以使对客户端代码中发生的事情的剖析“复杂化”,但您无法真正隐藏它。

如果您需要进一步的混淆帮助,您必须更好地描述您真正想要做的事情。当前的描述似乎没有提供足够的信息。这个文件路径是什么?它是用来做什么的?为什么需要隐藏它?

如果你真正想要的只是一个 Javascript 函数来混淆和去混淆声音文件名,你可以在谷歌上找到很多选项,具体取决于你想要获得的详细程度。我在这里的猜测是,确定的作弊不会被愚弄(因为所有代码都用于去混淆)所以你真正想做的就是让它乍一看不明显。因此,任何简单的算法都可以。

由于您已经在使用 jQuery,这里有一个 jQuery 可以进行简单的字符串混淆: http: //plugins.jquery.com/project/RotationalStringObfuscator。您必须自己在某种测试应用程序中运行混淆器来记录服务器应该将每个文件名设置为什么,然后在您想要实际使用文件名时在客户端中执行相反的操作。

如果您问我,更好的解决方案是从一开始就为文件名指定无意义的名称。这将是 395678264.wav 之类的名称,并以这种方式使用它们(在服务器和客户端上)。然后,这个名字对于任何窥探的人来说都是没有意义的。不需要去混淆或翻译表,因为这是真实的文件名。

于 2011-07-22T19:40:00.330 回答