Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");
function encrypt(message, length) {
// If the message is the empty string, return the empty string.
if(message == "") {
return "";
}
// Calculate the offset of the first character.
var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");
for(var last = 0, i = 0, len = message.length; i < len; i++) {
last = (message.charCodeAt(i) + 31 * last) % 59;
}
// Adjust for the specified length if it was given.
length = length || message.length;
while(len < length) {
message += message;
len += len;
}
message = message.slice(0, length);
// Generate the encrypted string.
for(var ret = "", i = 0; i < length; i++) {
ret += chars[last = (i + last + message.charCodeAt(i)) % 64];
}
return ret;
}
function hackcrypt(last, message) {
var len = message.length;
for(var ret = "", i = 0; i < len; i++)
ret += chars[last = (i + last + message.charCodeAt(i)) % 64];
return ret;
}
function uncrypt(endata){
var total = 0;
for(var ll=59; ll; ll--){
var ret = "", last = ll;
for(var i=0,l=endata.length; i < l ; i++){
var next_symb = 0;
while( endata.substr(0, i+1) !=
hackcrypt(ll, ret + chars[next_symb]).substr(0, i+1) &&
next_symb < 64){
next_symb++;
}
total += next_symb;
if(next_symb == 64) break;
ret += chars[next_symb];
}
if(encrypt(ret) == endata){
console.log('Hash count: ', total, 'Password: ', ret);
break;
}
}
}
uncrypt('mWodQ3pVKgLE');
Проблему решают менеджеры паролей, но они, как правило, только под одну платформу.
О, правда? А как же мультиплатформенный keepass? Или кроссбраузерный LastPass?но они, как правило, только под одну платформу.
Итак, я открыл страничку и набрал «habrahabr.ru/ukko», мне сгенерировался пароль, злоумышленник, зная что я пользуюсь этим генератором паролей зашёл на него и набрал те же самые «habrahabr.ru/ukko», тем самым пароль на 100% совпал.
vPass 2 — простой и удобный генератор безопасных паролей на Javascript