История изменений
Исправление
Novator,
(текущая версия)
:
Что касается шифрования, то для ассиметричных алгоритмов используется два способа:
1) шифруем на ОткКлюч, чел расшифровывает на ЗакКлюч,
используется для передачи шифротекста владельцу зак. ключа:
encrypted_cifer = key.public_encrypt(cifer)
cifer = key.private_decrypt(encrypted_cifer)
2) шифруем на ЗакКлюч, чел расшифровывает на ОткКлюч,
используется для создания ЭЦП, чтоб другие могли проверить:
encrypted_hash = key.private_encrypt(hash)
hash = key.public_decrypt(encrypted_hash)
Первый способ обычно используется для шифровки симметричного ключа (например, AES). Второй способ используется внутри функции key.sign(), тебе напрямую private_encrypt() не надо вызывать.
P.S. Можешь глянуть как я использую OpenSSL:
https://github.com/Novator/Pandora/blob/master/lib/crypto.rb
Исходная версия
Novator,
:
Что касается шифрования, то для ассиметричных алгоритмов используется два способа:
1) шифруем на ОткКлюч, чел расшифровывает на ЗакКлюч,
используется для передачи шифротекста владельцу зак. ключа:
encrypted_cifer = key.public_encrypt(cifer)
cifer = key.private_decrypt(encrypted_cifer)
2) шифруем на ЗакКлюч, чел расшифровывает на ОткКлюч,
используется для создания ЭЦП, чтоб другие могли проверить:
encrypted_hash = key.private_encrypt(hash)
hash = key.public_decrypt(encrypted_hash)
Первый способ обычно используется для шифровки симметричного ключа (например, AES). Второй способ используется внутри функции key.sign(), тебе напрямую private_encrypt() не надо вызывать.