PDA

Pogčedajte punu verziju : [JS] Jednostavan String encrypt-decrypt bez kompresije


35-68
21. 10. 2009., 00:05
var c_Secret = {
_regExp: new RegExp("\\d{3}", "g"),
_number: 160,
f_Encrypt: function(s_String) {
var Encrypt="", Encrypted="", i=0, j=0, text=escape(s_String.split("").reverse());
while (i < text.length) {
Encrypted += text[i].charCodeAt(0) + this._number;
i++;
}
Encrypted = Encrypted.match(this._regExp);
while (j < Encrypted.length) {
Encrypt += String.fromCharCode(Encrypted[j]);
j++;
}
return Encrypt;
},
f_Decrypt: function(s_String) {
var Decrypt="", Decrypted="", i=0, j=0, text;
while (i < s_String.length) {
Decrypted += s_String.charCodeAt(i);
i++;
}
text = Decrypted.match(this._regExp);
while (j < text.length) {
Decrypt += String.fromCharCode(text[j] - this._number);
j++;
}
return unescape(Decrypt).split(",").reverse().join("");
}
};c_Secret.f_Encrypt("devprotalk.com");
c_Secret.f_Decrypt("čลาใďลาใăลาใฮลาใċลาใČลาใāลาใĔลาใďลาใĒลาใĐลาใĖลาใąล าใĄ");

ivanhoe
21. 10. 2009., 02:05
svaka cast na trudu, ali ovo ti bas i nije neki algoritam... zasto dodajes %2C izmedju svaka dva karaktera? Tako ti rezultat stalno ima istu sekvencu:
<podatak1> 197 210 227 <podatak2> 197 210 227 ...

nepotrebno produzavas rezultat 4 puta, a pri tome ti je podatak enkriptovan obicnim offsetom od 160, tako da ti extra karakteri nista ne doprinose enkripciji?

A inace enkripcija putem offseta je jako slab metod zastite, cak i da napadac ne zna koji je offset koriscen, lako moze da ga nadje bilo statistickom analizom, bilo prostim probanjem.

Ne pisem ovo da te ispljujem, nego samo da skrenem paznju drugim ljudima da ne koriste ovo, sem za neke smesno proste stvari...

35-68
21. 10. 2009., 10:35
Ne pisem ovo da te ispljujemNo offense taken :)
nego samo da skrenem paznju drugim ljudima da ne koriste ovo, sem za neke smesno proste stvari Naravno, na to sam i mislio jednostan bez kompresije :D

jablan
21. 10. 2009., 11:56
Bez namere da popujem:

Korišćenje ovakvih adhoc "algoritama" (šiftovanje, xorovanje itd) je prilično opasno. Danas znaš da je u pitanju smešna "enkripcija" i koristiš je za neozbiljne stvari, sutra zaboraviš, ti ili neko drugi naiđe na nju, ne ulazi u analizu koda, i iskoristi je za nešto ozbiljno i eto sigurnosnog propusta.

Ako je poenta samo da se na prvi pogled ne vidi šta piše, mnogo je bolje koristiti neko klasično 7-bitno enkodiranje (npr Base64), plus što time rešavaš problem non-printable i karaktera sa "kukama i kvakama" koji mogu da prave problem pri manipulaciji.

Npr: http://ntt.cc/2008/01/19/base64-encoder-decoder-with-javascript.html

LiquidBrain
21. 10. 2009., 15:31
A ako bash hocesh enkripciju, onda blowfish: http://dren.ch/js_blowfish/