Windows XP SP3 + .Net Framework 4.0の組み合わせではSHA256が使えない


2012年 02月 28日

ほとんどタイトルで言い尽くしてしまった感がありますが、Windows XP SP3 + .Net Framework 4.0 の環境では標準ライブラリにあるSHA256ハッシュ関数を使うことができません。いや、その環境では動かないと言ったほうがいいでしょう。

上記リンク先のMSDNのページをみると、.Net Framework 4.0の場合
Windows 7, Windows Vista SP1 以降, Windows Server 2008 (Server Core はサポート対象外), Windows Server 2008 R2 (SP1 以降で Server Core をサポート), Windows Server 2003 SP2
.Net Framework 3.5 では
Windows Vista, Windows XP SP2, Windows Server 2003
となっています。Windows XP SP3 では、どちらにも当てはまらないためSHA256が使うことができないのです。ちなみにWindows XP SP2+.Net Framework 3.5 の場合は動く模様です。見事な落とし穴です。

幸い、こちらの方が対応策を書いていますので、場合によってはレジストリをいじって回避するというのもありです。ただし、当然ランタイム環境で気にしなければならないのは確かですけどね。