понимание различных режимов шифрования в cryptojs - PullRequest
0 голосов
/ 06 мая 2020

Я изучаю различные методы хеширования и нашел интересную библиотеку для начала с crypto Js

В документации есть несколько вариантов, определенных как ниже хеширование HMAC PBKDF2 Ciphers Encoders

Я понимаю, что хеширование - это генерация зашифрованного текста. HMA C предназначен для генерации кода аутентификации сообщения. Но я изо всех сил пытаюсь различить PBKDF2, Ciphers и Encoders. Какой выбрать, когда?

Любые указатели полезны.

Ответы [ 2 ]

1 голос
/ 06 мая 2020

Функция деривации ключей на основе пароля 2 - PBKDF2 - это функции, используемые для создания криптографических c ключей, которые сложнее подобрать с помощью растяжения ключа. потому что люди ленивы и создавать пароли слишком легко для перебора.

Например: наш любимый пароль - «пароль»

Учитывая соль «5C52FBAE9A4D97A49D14C8AF338DA55 C»

Криптограф c ключ становится (шестнадцатеричный) A2EB261802FFD1965D034AC252E880A44955078D6D4F12EDCDF6D03549F0 (B64) ousmGAL / 0ZZdA0rCUuiApElVB41tTxLtzfbQNUnw 1013 это не очевидно, так как 1013 * здесь 1013 * как «пароль» сам по себе.

Тем не менее, все еще возможно с предварительно вычисленными хешами. Здесь вы можете увидеть больше .

Шифры , с другой стороны, представляют собой методы для выполнения шифрования, а также дешифрования. Некоторые шифры, которые вы видите в crypto Js, являются вашими базовыми c AES, DES, тройным DES и c.

Кодеры просто используются для кодирования, где кодирование является очень общим. Он в основном используется для преобразования данных, чтобы другая система могла их понять. В области технологий это во многом связано с тем, что каждая системная архитектура и технология имеют свои интерпретации. Разные приложения будут понимать разную кодировку в соответствии с их потребностями.

В итоге,

Шифрование и кодирование разрабатываются двумя способами, тогда как PBKDF2 - это метод генерации криптографических c ключей (хэшей), которые спроектированы одним способом. Кодеры используются для кодирования данных в форму, которая может быть передана или интерпретирована другой системой.

Помещение в контекст:

Если мы хотим сохранить пароль в базе данных, у нас есть sh это потому, что нам не нужно знать пароль (изменение не требуется). Однако когда мы отправляем зашифрованное письмо другу, мы хотим иметь возможность отменить это шифрование (дешифрование). В противном случае содержимое будет потеряно. Когда письмо отправлено, мы добавили вложение. Вложение закодировано так, что другие почтовые клиенты могут его декодировать, иначе другая система не сможет открыть вложение или неправильно интерпретирует отправленные данные. оба должны быть перевернуты. Однако закодированный текст предназначен для реверсирования кем-либо или любой системой, которая имеет дело с закодированным текстом, поскольку схемы кодирования общедоступны, но зашифрованный текст, такой как зашифрованный текст, предназначен для реверсирования только определенных определенных лиц, то есть людей, которые обладают ключ или алгоритмы дешифрования. В нашем примере выше мы хотим, чтобы наше вложение интерпретировалось какой-либо системой, но мы не хотим, чтобы содержимое электронного письма, включая вложение, открывалось всеми.

0 голосов
/ 06 мая 2020

PBKDF2 используется, когда вы хотите иметь sh пароль, но с обычными функциями хеширования ваш пароль уязвим для словарных атак . Итак, здесь идут PBKDF2 и salt .

Ciphers : Это ваши обычные функции шифрования. Если вы хотите отправить какое-то зашифрованное сообщение, в котором только тот, у кого есть правильный ключ, может его расшифровать.

Кодировщики : для текстовых форматов кодирования .

...