With_rsa.rb

This content was produced by an LLM and could include errors.

このスクリプトはRSA暗号の基本的な往復処理です。OpenSSL::PKey::RSA.generate(2048) で鍵ペアを生成し、公開鍵の public_encrypt で秘密 "Ruby" を暗号化した後、対応する秘密鍵の private_decrypt で復号して元の文字列を復元します。公開鍵で暗号化したデータは対応する秘密鍵でのみ読める、という非対称暗号の要点を確認できます。

require 'openssl'
#=> true

rsa_private = OpenSSL::PKey::RSA.generate(2048)
#=> #<OpenSSL::PKey::RSA:0x00007ffbca7a05a8 oid=rsaEncryption type_name=RSA provider...
rsa_public = rsa_private.public_key
#=> #<OpenSSL::PKey::RSA:0x00007ffbca8958c8 oid=rsaEncryption type_name=RSA provider...

secret = 'Ruby'
#=> "Ruby"

enc_data = rsa_public.public_encrypt(secret)
#=> "\r\x04\xEF\xC6FC\xF0\xEAQ\xDF\x8B\x80\xEE\xB5\xD7\xC29\x98\xFD\x94\x965\tZmj\xC...

rsa_private.private_decrypt(enc_data)
#=> "Ruby"

Ruby 4.0.6