カテゴリー別

お絵描き、デザイン

写真、動画関連ソフト

アメーバピグ専用ソフト

ホームページ関連

画像処理

スキャナー用

SEO 関連

お楽しみ

その他

過去ログ

2017年08月10日(木)

c#、RSACryptoServiceProvider、SignHash と SignData の違い

SignHash は、ハッシュ値の署名を計算します。
SignData は、ハッシュ値を計算し、その署名を計算します。

なので、あるデーター A があった場合、
A のハッシュ値を引数に SignHash を呼んだ結果と
A を引数に SignData を呼んだ結果は同じです。

もちろん使用するハッシュアルゴリズムが同じ場合です。
具体的なコードは下記のようなものです。

SHA1Managed sha = new SHA1Managed();
byte[] msgHash = sha.ComputeHash(msgData);
byte[] sign = rsa.SignHash(msgHash, "SHA1");

下のコードの出力結果 (sign) は、↑と同じです。

byte[] sign = rsa.SignData(msgData, "SHA1");

SignHash の説明の「秘密キーで暗号化して」は、嘘ですね。
元の by encrypting it with the private key も不要。

using the preivate key くらいにしておけばよいものを。

ご意見・ご要望連絡窓口


コメント
コメントする