2010-04-19 7 views
4

Мне нужно просто закодировать строковую переменную (мой ключ api), так что это не легко читается человеческими глазами, мне нужно, чтобы она легко декодировалась обратно до той же начальной строки. Какова стандартная практическая и быстрая (менее вычислительная на стороне пользователя) способ сделать это?Как просто кодировать и декодировать строковую переменную

Большое спасибо заранее!

+0

Вы знаете, что это не помогает защитить ваш ключ вообще? – elias

ответ

3

Если он не должен быть супер-безопасный, Base64 кодирование всегда под рукой:

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

+0

Я закончил с использованием http://plugins.jquery.com/project/b64 btw – Mohammad

+0

Хорошо, просто знайте, что этот метод только делает его неудобным, но далеко не невозможным, для декодирования. –

+0

Я добавил несколько дополнительных битов, перевернувших строку, закодировал их и т. Д. Haha:) Я думаю, это затрудняет понимание, какие биты были добавлены, особенно после того, как он тоже был отменен.^Декодер возвращает мусор. – Mohammad

0

Все, что вы можете сделать, чтобы запутать информацию о клиенте означает, что вы включаете код для де- обфускация рядом с ним.

Итак ... кроме добавления одного дополнительного шага для вашей программы (и гипотетического злоумышленника) вы ничего не получаете. Ну, не так много.

Если ваш ключ API является секретным, сохраните его на сервере и позвольте серверу выполнять работу через HTTP-запросы.

+0

Да! thats true, но так как я собираюсь запутать сами функции javascript, которые просто видят их вместе, а так как код очень длинный, я просто пытаюсь извлечь преимущество «Ctrl + F» от них, заставляя их чтобы практически переучивать весь код для его копирования. Что должно препятствовать любителям. Это своего рода проект, связанный с этим. Я не уверен, насколько хорошо я это описал. – Mohammad

+0

@Mohammed: Я знаю, что это тонкая линия. Но спросите себя - если это секрет (с точки зрения «плохих вещей случаются, когда люди узнают», Jf obfuscation недостаточно, а запуск его на клиенте по своей сути опасен, независимо от того, в какой форме или форме. секрет в этих терминах, зачем вообще запутывать его? Итак ... кто ваша целевая аудитория, с кем вы уезжаете? – Tomalak

+0

Tomalak, вы правы, конечно. Мне придется начать беспокоиться об этом при следующей оптимизации безопасности Спасибо!) – Mohammad

0

Вы можете попробовать Javascript Obfuscator либо закодировать весь ваш скрипт, либо детали. Не абсолютное решение, а начало защиты вашего кода.

+0

это не кодирует никаких строковых переменных. –

0

Является ли это секретная информация или нет?

Если это секрет, вам нужна настоящая библиотека шифрования, а также глубокое мышление, чтобы убедиться, что ваш секрет хранится в секрете. Я бы серьезно подумал о том, чтобы никогда не отправлять какой-либо секрет в браузер.

Если это не секрет, и вам просто нужно отправить это по URL-адресу, не получив borked, тогда escape()/unescape() - это то, что вы ищете.

+0

Использование 'escape()'/'unescape()' устарело: https://developer.mozilla.org/en/Core_JavaScript_1.5_Guide/Predefined_Functions/escape_and_unescape_Functions – Tomalak