2010-04-19 123 views
4

我需要简单地编码一个字符串变量(my api key),以便人眼不易读,我需要它轻松地解码回到完全相同的初始字符串。什么是标准的实用和快速(少用户端计算)的方式来做到这一点?如何简单地编码和解码字符串变量

非常感谢提前!

+0

你知道它根本无助于保护你的钥匙吗? – elias 2010-04-19 16:14:17

回答

3

如果它没有被超级安全,Base64编码总是得心应手:

http://www.webtoolkit.info/javascript-base64.html

+0

我结束了使用http://plugins.jquery.com/project/b64 btw – Mohammad 2010-04-20 08:38:15

+0

好 - 只是知道这种方法只是使它不方便,但不可能解码。 – 2010-04-20 11:31:58

+0

我添加了一些额外的位反转字符串,编码它等等。哈哈:) 我想这很难知道哪些位被添加,特别是因为它被颠倒过来^^解码器返回垃圾。 – Mohammad 2010-04-21 09:21:17

0

一切都可以做,以混淆客户端上的信息意味着你包括去代码混淆在它旁边。

所以......除了为你的程序(和假想的攻击者)增加一个额外的步骤外,你什么也得不到。好吧,反正也不多。

如果您的API密钥是秘密的,请将其保留在服务器上,并让服务器通过HTTP请求完成工作。

+0

是的!这是真的,但因为我要混淆javascript函数本身,这只是把它们挤在一起,因为代码很小,我只是试图从他们的“Ctrl + F”的优势,迫使他们实际上重新学习所有的代码来复制它。应该劝阻业余爱好者。这是一个有关项目的项目,我不确定我是如何描述它的。 – Mohammad 2010-04-19 16:25:57

+0

@Mohammed:我知道这是一条细线。但问问自己 - 如果它是秘密的(根据“当人们发现不好的事情发生时”,JS混淆是不够的,并且在客户端运行它本身就是危险的,不管它是什么形状或形式。如果它不是秘密在这些术语中,为什么麻烦混淆它呢?那么......谁是你的目标受众,你是谁开的? – Tomalak 2010-04-19 16:45:56

+0

Tomalak你当然是对的,我必须开始担心我的下一个安全优化。谢谢:) – Mohammad 2010-04-19 18:16:48

0

您可以尝试使用Javascript Obfuscator来编码整个脚本或零件。不是绝对的解决方案,而是开始保护你的代码。

+0

这不会编码任何字符串变量。 – 2012-06-17 23:48:44

0

这是秘密信息或没有?

如果它是秘密的,你需要一个真正的加密库和一些深思熟虑,确保你的秘密保密。我会认真考虑不要向浏览器发送任何秘密。

如果这不是秘密,并且您只需要通过URL发送它而不会发生这种情况,那么escape()/ unescape()就是您要查找的内容。

+0

不推荐使用escape()'/'unescape()':https://developer.mozilla.org/en/Core_JavaScript_1.5_Guide/Predefined_Functions/escape_and_unescape_Functions – Tomalak 2010-04-19 18:28:20