RSA暗号化を使用してopenSSLでデータを暗号化していますが、これは正常に機能します。RSA についての私の理解では、同じデータを同じ公開鍵で暗号化すると、常に同じ結果が得られます (ここまたはここに記載されているように)。
ただし、openssl を使用すると、暗号化を繰り返すたびに異なる結果が得られます。例えば:
➜ ~ echo '30' | openssl rsautl -encrypt -inkey pub.pem -pubin | shasum
11b6e058273df1ebe0be5e0596e07a6c51724ca0 -
➜ ~ echo '30' | openssl rsautl -encrypt -inkey pub.pem -pubin | shasum
05cb82595f7429ef196189f4e781088597d90eee -
では、なぜ出力が一意ではないのでしょうか。RSA 暗号化を間違えたからですか、それとも openssl が追加の魔法を行ったからですか?
実際、私は RSA 暗号化データのみを格納するデータベースを設計しようとしています。暗号化された情報のハッシュサムを検索したいのですが、暗号化手順自体が一意でない場合、これは不可能です。