Шифрование и расшифровка строки в javascript
Привет..
Я хочу зашифровать строку и позже расшифровать ее на другой странице с помощью javascript ..пожалуйста, пришлите мне любой пример проекта для этого
Почему каждый способ программирования состоит в том, чтобы попросить "образцы проектов" для копирования ? Какой в этом смысл ? Если вы делаете это на клиенте, то клиент имеет исходный код и может пройти через него, по крайней мере, в Chrome. Таким образом, любой может видеть строки, которые вы шифруете, и то, как они шифруются и расшифровываются. Это пустая трата времени.
мой +5
Чтобы сделать такую вещь, вы должны сделать что-то очень простое, это всего лишь 7 строк.
var chars = {'a':'b','b':'c','c':'a'}; var enc; var str = "back at it again with the bois!"; window.onload = function() { enc = str.replace(/[abc]/g, m => chars[m]); alert(enc); };
Смотрите комментарии и решения выше - нет никакого смысла, так как клиент сможет увидеть, как работает шифрование!
Даже не имея возможности увидеть и отладить исходный код, этот простой вариант Цезарь-сдвига будет взломан в течение нескольких секунд.
Опубликованные комментарии и решения ПЯТЬ ЛЕТ НАЗАД уже объясните, почему это плохая идея.
Привет,
Вы можете попробовать вот так.
String.prototype.toEncodedString = function(){var ostr=this.toString().replace(/\s+/g,'');if(ostr.length<8){alert("Password must be at least 8 characters long with no spaces.");return null;};var x,nstr='',len=ostr.length;for(x=0;x<len;++x){nstr+=(255-ostr.charCodeAt(x)).toString(36).toUpperCase().toPaddedString(2,'0');};return nstr;}; String.prototype.fromEncodedString = function(){var ostr=this.toString();var x,nstr='',len=ostr.length;for(x=0;x<len;x+=2){nstr+=String.fromCharCode(255-parseInt(ostr.substr(x,2),36));};return nstr;}; Number.prototype.toPaddedString = function(len,pad){len=(len)?Number(len):2;if(isNaN(len)){alert("Padded String 'length' argument is not numeric.");return null;};var dflt=(isNaN(this.toString()))?" ":"0";pad=(pad)?pad.toString().substr(0,1):dflt;var str=this.toString();if(dflt=="0"){while(str.length<len)str=pad+str;};else{while(str.length<len)str+=pad;};return str;}; String.prototype.toPaddedString = Number.prototype.toPaddedString; // var str = window.prompt('Enter string to encode:',''); if (str = str.toEncodedString()) { str = window.prompt('Enter encoded string:',str); str = str.fromEncodedString(); alert(str); } else { alert('Encoding cancelled.'); }
И какова же его ценность ? Разве я не могу установить точку останова, чтобы пройти через этот код и посмотреть, что кодируется и декодируется ? Разве я не могу прочитать код и точно знать, как декодировать строку ?
- Да, можешь...
Поместите отладчик в любую точку кода и получите свой контроль над этим местом для отладки.
Точка зрения Кристиана заключается в том, что если клиент может пройти через код в отладчике, и целью этого кода является шифрование, вся цель шифрования становится бессмысленной.
Да, я понимаю, в чем дело. Это неприемлемо. Поскольку в javascript есть проблемы безопасности, то совсем не рекомендуется использовать кодировку и декрипцию с помощью javascript. На сервере, шифрование и декодирование несколько предпочтительнее.