LINUX.ORG.RU

История изменений

Исправление 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() не надо вызывать.