шифрование строки по ключу
Доброго времени суток.
Никак не могу найти библиотеку реализующий что-то в роде: var str = "some string"; var k = "some key"; var tmp = encrypt(str, k); str == decrypt(tmp, k); Но мне нужно что бы была реализация на javascript и php. Особых требований к безопасности нет. Вот пример только javascript Заранее благодарен! |
Просто, больно не хочется эту мутатень на php переводить
c64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split(''), l64 = {}; for (i=0; i<64; i++) l64[c64[i]] = i; function alphar(s) { // I only pray--let me be ready. var i; // s must contain only base-64 characters! s = s.replace(/[^0-9A-Za-z+\/]+/g, ''); s = s.split(''); // preparse k into n-series for (i=0; i<s.length; i++) s[i] = l64[s[i]]; return s; } // circular--acraw(acraw(a, k, r, sec), k, r, sec) == a function acraw(s, k, r, seed) { /* seed is a sec feature; read some papers about non-repeated initializations */ var i; s = s.split(''); // isn't it thrilling? for (i=0; i<s.length; i++) s[i] = c64[l64[s[i]] ^ k[i%k.length] ^ r[i%r.length] ^ seed]; return s.join(''); // yahoo! } function alphac(s, k, r, on) { /* encrypt = on | off */ // get read, get set var d, i; k=alphar(k), r=alphar(r); // dump empty stuff if (r.length == 0 || k.length == 0 || s.length == 0) return s; // split s into bunches of base-64/non-base-64 s = s.match(/[^0-9A-Za-z+\/]+|[0-9A-Za-z+\/]+/g); i = /[0-9A-Za-z+\/]/.test(s[0]) ? 0 : 1; // give a 1-2 punch! go! if (on) for (; i<s.length; i+=2) d = c64[Math.floor(Math.random()*64)], s[i] = acraw(s[i], k, r, l64[d])+d; /* si + d, Sidney Hall */ else for (; i<s.length; i+=2) d = s[i].length-1, s[i] = acraw(s[i].substring(0, d), k, r, l64[s[i].charAt(d)]); // finished! return s.join(''); } |
Разве нет готовых функций в PHP для Base64?
|
|
Ага. То есть вы предлагаете передавать в функцию значение это-го ключа var b64 = "ABCDEFGHIJKLMNOPQRSTUVWX... + строку ?
|
Я просто в криптографии как рыба на сковородке :)
|
Это не ключ, и не шифрование. Это base64 алгоритм. Читать тут
Где Вы вообще хотите кодировать? На сервере или на клиенте? |
В том то и проблема, что кодировать на сервере а декодировать на стороне клиента. b64 ключ, ось или что там еще. Но я думаю, что можно безопасно поменять последовательность и получить рабочий код генерирующий качественный хеш ?
На всякий случай уточню: Есть две строки "А" и "Б" . Из них на сервере делаем третью "С". Клиент получает ее "С" + генерирует определенным образом( это дела не касается) одну из изначальных строк "Б" и на основании этих двух "С" и "Б" восстанавливает третью "А" и передаёт обратно серверу( это то же дела не касается) PS. Спасибо. сейчас почитаю. |
Последний вопрос, надеюсь, в этот раз.
Нужно этот код http://javascript.ru/php/base64_encode перевести на php (встроенную функцию не предлагать) у меня даже имеется часть кода http://www.everfall.com/paste/id.php?tgo9b3r1ay5s Нужно что бы этот скрипт давал такой же результат как и http://javascript.ru/php/base64_encode Будем очень благодарны :) |
Цитата:
|
Часовой пояс GMT +3, время: 21:33. |