Как зашифровать и расшифровать данные с помощью Ring и PSK или сертификата в Rust?

#encryption #rust #public-key-encryption #encryption-asymmetric

Вопрос:

Мне нравится реализовывать безопасный подписанный токен с некоторыми данными для использования в нескольких внутренних службах.

Оценивая возможности, похоже, что библиотека колец уже является одной из зависимостей моего проекта из-за зависимости более высокого уровня (warp).

Поэтому я подумал, что тоже мог бы использовать кольцо для своих целей, не так ли?

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

Может ли кто-нибудь привести очень простой пример того, как использовать ring в ^0.16 для шифрования и дешифрования данных с помощью предварительного общего ключа и/или SSL-сертификата (например, сгенерированного open-ssl)?

Или вы скорее думаете, что я должен использовать для своих целей не кольцо, а другую библиотеку?

Комментарии:

1. Что вы подразумеваете под «безопасным сохранением пароля» ? Если вы пытаетесь реализовать вход в систему, то вам не следует хранить пароли, вместо этого вы должны использовать функцию вывода ключей, такую как argon2, и хранить ее выходные данные.

2. Хороший вопрос и предложение. На самом деле у меня нет проблем с реализацией хэш-функций password, поэтому я нашел несколько рабочих примеров для этого. Так что моя формулировка была совершенно обманчивой. Извини за это. … моя цель состоит в том, чтобы реализовать что-то вроде защищенного токена, который может быть зашифрован одной службой и прочитан только некоторыми другими, которые знают, например, предварительный общий ключ или открытый ключ сертификата…