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:0x00007f78bea00828 oid=rsaEncryption type_name=RSA provider...
rsa_public = rsa_private.public_key
#=> #<OpenSSL::PKey::RSA:0x00007f78beaf9108 oid=rsaEncryption type_name=RSA provider...

secret = 'Ruby'
#=> "Ruby"

enc_data = rsa_public.public_encrypt(secret)
#=> "]D\x86\xA5\x96\xC8\xF77\xF6\xFF\x1Ak(9Y\x04\x91\x81#T%Q\x13\xADV\xD8\xF8\x9Ep\x...

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

Ruby 4.0.7