Base-64 кодирует строку.
Тогда вы можете просто base64-декодировать его в JavaScript.
Это должно сделать его достаточно нечитаемым, без реальной безопасности, конечно.
Плюс это быстро.
Вы должны заботиться с UTF-8 символов (например, немецкой äöüÄÖÜ или французского èéàâôû)
напримеркак это в JavaScript:
var str = "äöüÄÖÜçéèñ";
var b64 = window.btoa(unescape(encodeURIComponent(str)))
console.log(b64);
var str2 = decodeURIComponent(escape(window.atob(b64)));
console.log(str2);
пример:
var imgsrc = 'data:image/svg+xml;base64,' + btoa(unescape(encodeURIComponent(markup)));
var img = new Image(1, 1); // width, height values are optional params
img.src = imgsrc;
Более безопасный вариант:
Возврат зашифрованы в кодировке base64 JSON, плюс алгоритм расшифровки, base64 кодирования их на стороне сервера, бит сдвига его несколько бит, вернитесь через ajax, затем де-битдвиньте строку на веб-странице, передайте ее на eval, которая даст вам функцию расшифровки, затем расшифрует зашифрованную строку base64, а затем base-64 декодирует эту строку.
Но это займет всего несколько секунд на консоли отладки хрома для дешифрования, я однажды расшифровал такую вещь, я думаю, что на кодекане можно бесплатно получить скрипт «Табы»; (не беспокойтесь о вкладках, они являются вирусами, лучше инвестируйте время, чтобы сделать это сами);)
Я думаю, вы обнаружите, что в настоящее время здесь http://www.slidetabs.com/, но я не знаю, является ли метод «шифрования» все еще там.
Кроме того, вы можете также избежать строки в JavaScript, что будет выглядеть следующим образом:
var _0xe91d=["\x28\x35\x28\x24\x29\x7B\x24\x2E\x32\x77\x2E
...
x5F\x63\x6F\x6E\x74\x5F\x64\x75\x72\x7C\x76\x5F\x74\x61\x62\x73\x5F\x61\x6C\x69\x67\x6E\x7C\x76\x5F\x74\x61\x62\x73\x5F\x64\x75\x72\x7C\x76\x5F\x73\x63\x72\x6F\x6C\x6C\x7C\x63\x6F\x6E\x74\x5F\x61\x6E\x69\x6D\x7C\x63\x6F\x6E\x74\x5F\x66\x78\x7C\x74\x61\x62\x5F\x66\x78\x7C\x72\x65\x70\x6C\x61\x63\x65\x7C\x62\x61\x6C\x69\x67\x6E\x7C\x61\x6C\x69\x67\x6E\x5F\x7C\x75\x6E\x6D\x6F\x75\x73\x65\x77\x68\x65\x65\x6C\x7C\x73\x77\x69\x74\x63\x68\x7C\x64\x65\x66\x61\x75\x6C\x74\x7C\x6A\x51\x75\x65\x72\x79","","\x66\x72\x6F\x6D\x43\x68\x61\x72\x43\x6F\x64\x65","\x72\x65\x70\x6C\x61\x63\x65","\x5C\x77\x2B","\x5C\x62","\x67"]
;eval(function (_0x173cx1,_0x173cx2,_0x173cx3,_0x173cx4,_0x173cx5,_0x173cx6){_0x173cx5=function (_0x173cx3){return (_0x173cx3<_0x173cx2?_0xe91d[4]:_0x173cx5(parseInt(_0x173cx3/_0x173cx2)))+((_0x173cx3=_0x173cx3%_0x173cx2)>35?String[_0xe91d[5]](_0x173cx3+29):_0x173cx3.toString(36));} ;if(!_0xe91d[4][_0xe91d[6]](/^/,String)){while(_0x173cx3--){_0x173cx6[_0x173cx5(_0x173cx3)]=_0x173cx4[_0x173cx3]||_0x173cx5(_0x173cx3);} ;_0x173cx4=[function (_0x173cx5){return _0x173cx6[_0x173cx5];} ];_0x173cx5=function(){return _0xe91d[7];} ;_0x173cx3=1;} ;while(_0x173cx3--){if(_0x173cx4[_0x173cx3]){_0x173cx1=_0x173cx1[_0xe91d[6]](new RegExp(_0xe91d[8]+_0x173cx5(_0x173cx3)+_0xe91d[8],_0xe91d[9]),_0x173cx4[_0x173cx3]);} ;} ;return _0x173cx1;} (_0xe91d[0],62,284,_0xe91d[3][_0xe91d[2]](_0xe91d[1]),0,{}));
Вы можете принести тетиву, как:
"\x66\x72\x6F\x6D\x43\x68\x61\x72\x43\x6F\x64\x65".toString()
Но для умеренного кодера (как и я), чтобы разобраться в системе и расшифровать данные всего этого вместе взятые будут принимать только appx. 15-30 минут, (экспериментальная находка, из codecanyon-try).
Это сомнительно, если такая вещь стоит того, чтобы тратить ваше время, потому что для меня требуется меньше времени на обратное проектирование вашего «шифрования», чем требуется, чтобы «закодировать» его.
Обратите внимание, что если вы помещаете в свое приложение строку типа «\ x66 \ x72 \ x6F \ x6D \ x43 \ x68 \ x61 \ x72 \ x43 \ x6F \ x64 \ x65 \ x64 \ x72 \ x43 \ x6F \ x64 \ x65", вы можете вызвать ложные тревоги на определенном вирусе сканеры (McAffee, TrendMicro, Norton и т. д., обычные подозреваемые).
Вы также можете разбить строку JSON на массив строк JSON-строк, что затрудняет ее расшифровку (возможно, также может помочь чередование последовательности в массиве в соответствии с определенной системой).
Вы также можете разбить строку в массив полукокса:
var x = ['a', 'b', 'c'];
Вы можете вернуть его обратно, как
console.log(x.join(""));
Вы можете также обратить строку, и положить, что в массив (amCharts делает это).
Затем вернуть его обратно с
x.reverse().join("");
Последняя может быть сложным для UTF-8, как вам нужно правильно реверс строки, как «Les Miserables» (смотри также this и this)
Это по соображениям конфиденциальности? – tiledcode
Независимо от того, как вы отправляете его клиенту, в 99% случаев он может быть дефискурирован/декодирован. Есть ли какой-либо способ сделать его серверным и обслуживать анализируемые данные? –
@lechariotdor: Мне звучит больше похоже на предотвращение подражания, против возможных конкурентов. –