Шифрование пароля JS

Рейтинг: 0Ответов: 1Опубликовано: 19.03.2023

Мне нужно сделать функцию для шифрования пароля и функцию для дешифрации соответственно, но моих знаний JS очень сильно не хватает, может кто-нибудь мне помочь?

Функция принимает на вход пароль и изменяет его. Сначала до каждого символа добавляются буквы из английского алфавита + цифра 2. То есть будет что-то вроде 123абв => a21b22c23d2аe2бf2вg2 . И затем все это переворачивается.

Еще один пример: 18062000nV- => a21b28c20d26e22f20g20h20i2nj2Vk2-l2 => 2l-2kV2jn2i02h02g02f22e62d02c82b12a

Я пробовал написать что-то, но у меня даже близко не получилось.

Есть ли смысл в такой шифровке и можно ли написать функцию-дешифратор?

Ответы

▲ 0Принят

Если вы хотите увидеть реализацию простой функции шифрования и дешифрования, то вот как это может выглядеть.

function encryptPassword(password) {
    let encryptedPassword = "";
    let alphabet = "abcdefghijklmnopqrstuvwxyz";
    for (let i = 0; i < password.length; i++) {
        encryptedPassword += alphabet[i % alphabet.length] + "2" + password[i];
    }
    return encryptedPassword.split("").reverse().join("");
}

function decryptPassword(encryptedPassword) {
    let decryptedPassword = "";
    let reversedEncryptedPassword = encryptedPassword.split("").reverse().join("");
    for (let i = 0; i < reversedEncryptedPassword.length; i += 3) {
        decryptedPassword += reversedEncryptedPassword[i + 2];
    }
    return decryptedPassword;
}

А если вы хотите в реальном проекте использовать шифрование на js, то лучше всего будет воспользоваться готовыми библиотеками, где есть более серьёзные алгоритмы шифрования, по типу RSA.

Также хочу заметить, что шифрование паролей для хранения, не лучшая идея. Лучше всего воспользоваться односторонними функциями (хэш-функции)

Если надо дополнить ответ, пишите, буду рад помочь