2010-04-19 49 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