作業中のプロジェクトの1つで暗号化メカニズムを使用する必要があります。私はRSA暗号化を調査していて、学ぶためにいくつかのサンプルプログラムを作成しました。
RSA暗号化のブロックサイズは16バイトであることを理解しています。そこで、以下の関数への入力として文字列「12345678」を指定しました。
public static string Encrypt(文字列入力){
var byteConverter = new UnicodeEncoding();
RSACryptoServiceProvider cruptoEngine = new RSACryptoServiceProvider();
byte [] output = cruptoEngine.Encrypt(byteConverter.GetBytes(input)、false);
BytesToString(出力);を返します。// BytesToString()はバイトを16進文字列に変換します
}
今私が得る暗号化された文字列は128バイト(256の16進文字)です。この文字列は私には大きすぎます。16バイトのプレーンデータを提供すると、16バイトの暗号化データを取得できることを期待していました。私は何か間違ったことをしていますか?これは何が起こるはずですか?暗号化されたデータをどうにかして短縮できますか?