[Перевод] Простая и ужасающая история о шифровании
Это будет история об открытом ПО, доверии и ответственности.
Как-то раз мне понадобилось добавить в своё приложение на 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)
Ну, отлично. Что же могло пойти не так?
Читать дальше →
Источник: Хабрахабр
Похожие новости
- Редакция Spark.ru: Всемирная история торговли в стиле Сатирикона: часть 14. «Русская Аляска»
- Под другим углом: 3 сентября в Москве состоится Hybrid Conf'25
- Spark_news: В России готовится к выходу серия конструкторов, созданных по мотивам популярного мультфильма «Смешарики»
- Appbooster: «В ASO нет точных формул»: можно ли заранее просчитать результат оптимизации?
- SIEM. Часть 2. Технический разбор KUMA, Радар, UserGate и других
- Как правильно обезличить ПДн
- Как мы делаем SOC as a service: привлекаем большие данные и собственный SIEM на помощь клиентам
- Хроники целевых атак в 1 полугодии 2025: аналитика, факты и рекомендации
- Августовский «В тренде VM»: уязвимости в Microsoft Windows и SharePoint
- Пентест на автопилоте: что доверить роботам, а что — нет?