Как правильно шифровать (дешифровать) данные, алгоритмом AES через библиотеку CryptoJs? Здравствуйте, подскажите пожалуйста, как правильно шифровать и дешифровать данные с помощью библиотеки CryptoJs?
Сейчас я пришёл к вот такому варианту:const key = CryptoJS.lib.WordArray.random(256).toString()
// Шифрование сообщения
function encryptMessage(message) {
var iv = CryptoJS.lib.WordArray.random(256)
var encrypted = CryptoJS.AES.encrypt(message, key, { iv: iv });
return encrypted.toString()
}
// Дешифрование сообщения
function decryptMessage(encrypted) {
const decrypted = CryptoJS.AES.decrypt(encrypted, key)
return decrypted.toString(CryptoJS.enc.Utf8)
}
И меня появился вопрос, что если я буду использовать ключ, больше 256 бит, например 1024, алгоритм его примет, или возьмёт только первые 254 бита?
И iv всегда рандомные создавать, для дешифровки они не нужны?
И стоит ли использовать дополнительно PBKDF2:const key = CryptoJS.lib.WordArray.random(256).toString()
function encryptMessage(message) {
var salt = CryptoJS.lib.WordArray.random(32)
var iv = CryptoJS.lib.WordArray.random(256)
var newKey = CryptoJS.PBKDF2(key, salt, { keySize: 256, iterations: 10 })
var encrypted = CryptoJS.AES.encrypt(message, newKey, { iv: iv });
return encrypted.toString()
}
Как я понял, это поможет небольшой пароль (10 бит), преобразовать в 256 битный ключ.
И при использовании рандомной соли, не получается дешифровать данные, почему так?
Спасибо!

21 Авг 2019 в 07:10
194 +1
0
Ответы
Нет ответов
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 83 722 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир