[Перевод] Простая и ужасающая история о шифровании
Это будет история об открытом ПО, доверии и ответственности.
Как-то раз мне понадобилось добавить в своё приложение на Ruby симметричное шифрование. Алгоритм AES показался мне хорошим выбором и я решил найти библиотеку шифрования с поддержкой этого алгоритма. Поскольку я писал на Ruby, то сделал то же самое, что сделал бы на моём месте практически каждый программист на Ruby — пошел в Google и написал запрос «ruby gem aes». Конечно же, Google первой строкой предложил мне gem, называющийся (вот неожиданность!) — «aes». Он был очень прост в использовании:
require 'aes'message = "Super secret message"key = "password"encrypted = AES.encrypt(message, key) # RZhMg/RzyTXK4QKOJDhGJg==$BYAvRONIsfKjX+uYiZ8TCsW7C2Ug9fH7cfRG9mbvx9o=decrypted = AES.decrypt(encrypted, key) # Super secret message
Если вы при расшифровке использовали неверный пароль, gem выбрасывал ошибку:
decrypted = AES.decrypt(encrypted, "Some other password") #=> aes.rb:76:in `final': bad decrypt (OpenSSL::Cipher::CipherError)
Ну, отлично. Что же могло пойти не так?
Читать дальше →
Задача и её решение
Как-то раз мне понадобилось добавить в своё приложение на Ruby симметричное шифрование. Алгоритм AES показался мне хорошим выбором и я решил найти библиотеку шифрования с поддержкой этого алгоритма. Поскольку я писал на Ruby, то сделал то же самое, что сделал бы на моём месте практически каждый программист на Ruby — пошел в Google и написал запрос «ruby gem aes». Конечно же, Google первой строкой предложил мне gem, называющийся (вот неожиданность!) — «aes». Он был очень прост в использовании:
require 'aes'message = "Super secret message"key = "password"encrypted = AES.encrypt(message, key) # RZhMg/RzyTXK4QKOJDhGJg==$BYAvRONIsfKjX+uYiZ8TCsW7C2Ug9fH7cfRG9mbvx9o=decrypted = AES.decrypt(encrypted, key) # Super secret message
Если вы при расшифровке использовали неверный пароль, gem выбрасывал ошибку:
decrypted = AES.decrypt(encrypted, "Some other password") #=> aes.rb:76:in `final': bad decrypt (OpenSSL::Cipher::CipherError)
Ну, отлично. Что же могло пойти не так?
Читать дальше →
Источник: Хабрахабр
Похожие новости
- BYYD: TV vs Mobile: какой формат рекламы привлекает больше внимания?
- Подкаст Стартап-секреты: Личный ассистент по подписке: как заработать 100 млн рублей за год, освобождая время занятым людям
- Как повысить производительность и улучшить отношения с коллегами и начальством за счёт EQ
- Сказ о том, как пентестеры трафик скрывают
- Построение полносвязной сети с применением ГОСТового шифрования. Или как скрестить Cisco и Континент
- About People: 4 ошибки в HR-менеджменте, из-за которых компания теряет более 265.000₽: инсайды кадрового агентства
- История 16-летнего подростка взломавшего ЦРУ
- Тесты «Тринити»: совместимость со средствами доверенной загрузки
- Коляс Иванов: Ваш логотип в тренде или устарел? 7 шагов для быстрой проверки
- Прогноз результатов продвижения сайта для зарубежного рынка при помощи инструмента Ahrefs