e知識「e-chishiki.com」では、インドでの著名なIT著者、IT教育者、eセキュリティーの大家により作成された様々な種類のプログラミング言語に関する技術的なコンテンツを知識情報データーベースとして提供します。
オンライン書籍; Microsoft .NET Web アプリケーションセキュリティ
第 8 章 : 暗号化(書籍のプレビュー)
Microsoft .NET Web アプリケーションセキュリティ
インデックス
インドの情報セキュリティの大家が書き下ろした最新のセキュリティ書籍の一部をオンライン書籍としてご紹介します。書籍の情報は、こちらをご覧ください。
MD5CryptoServiceProvider
c.cs
using System.Security.Cryptography;
using System;
using System.Text;
class zzz
{
public static void Main()
{
MD5CryptoServiceProvider s;
s = new MD5CryptoServiceProvider ();
byte [] o,r;
o = Encoding.UTF8.GetBytes("Vijay");
r = s.ComputeHash(o);
Console.WriteLine("Length of array {0}",r.Length);
for ( int i = 0 ; i < r.Length ; i++)
Console.Write("{0:x}",r[i]);
Console.WriteLine();
String t = Encoding.ASCII.GetString(r);
Console.WriteLine(t);
String ss = Convert.ToBase64String(r);
Console.WriteLine(ss);
}
}
コマンド プロンプト ウィンドウ
C:\encrypt>c
Length of array 16
3f8e154b1ff9a18c1a238a42e558f1a
♥??T???↑??8?.U?→
A/jhVLH/mhjBojikLlWPGg==
1 つのプロバイダの使用方法を知っていれば、他のプロバイダも問題なく使用できます。このプログラムでは、2 行のコードを変更しただけです。つまり、SHA1CryptoServiceProvider を MD5CryptoServiceProvider に置き換えました。コードの他の部分は同じです。MD5 ハッシュのサイズは 128 ビットです。
.Net Framework での暗号化クラスに関する基本的な考え方は、関係する計算を隠すということです。利用する場合に知る必要があることは、これらのクラスの使用方法だけです。
暗号研究者は、よく衝突という言葉を使います。これは、2 つのデータが同じハッシュを生成することです。理論的には、SHA1 は衝突を生成できませんが、MD5 は生成する可能性があります。唯一の問題は、このことが合理的に証明されていないことであり、したがって実用においては、どちらも安全に使用できます。



