e知識「e-chishiki.com」では、インドでの著名なIT著者、IT教育者、eセキュリティーの大家により作成された様々な種類のプログラミング言語に関する技術的なコンテンツを知識情報データーベースとして提供します。
オンライン書籍; Microsoft .NET Web アプリケーションセキュリティ
第 8 章 : 暗号化(書籍のプレビュー)
Microsoft .NET Web アプリケーションセキュリティ
インデックス
インドの情報セキュリティの大家が書き下ろした最新のセキュリティ書籍の一部をオンライン書籍としてご紹介します。書籍の情報は、こちらをご覧ください。
SHA1CryptoServiceProvider
c.cs
using System.Security.Cryptography;
using System;
using System.Text;
class zzz
{
public static void Main()
{
SHA1CryptoServiceProvider s;
s = new SHA1CryptoServiceProvider ();
byte [] o,r;
o = Encoding.UTF8.GetBytes("Vijay");
r = s.ComputeHash(o);
String t = Encoding.ASCII.GetString(r);
Console.WriteLine(t);
String ss = Convert.ToBase64String(r);
Console.WriteLine(ss);
}
}
コマンド プロンプト ウィンドウ
C:\encrypt>c
^↕???+?=?[$F??S???14
XhK3wv0rlj3lWyRGo9ZTs8zaMTQ=
SHA1CryptoServiceProvider のコードは、SHA1 のルールに従ってハッシュを計算できます。そのためには、SHA1CryptoServiceProvider 型のインスタンスを作成します。このクラスは SHA1 という名前の抽象クラスから派生していることに注意する必要があります。
暗号化クラスの処理はバイトの配列と相性がよく、これは人間の作業スタイルとは対照的です。私たち人間はいつでも文字列の方を好みます。
このクラスには ComputeHash という名前のメソッドがあり、バイトの配列を受け取ります。このメソッドは、受け取ったバイト シーケンスをハッシュに変換し、その値を返します。SHA1 ハッシュであるこの値のサイズは 20 バイトですが、暗号に関する場合は 160 ビットと表現します。
次の処理は、このバイト配列を表示することです。最も簡単な方法は、ループ構造を使用して、1 バイトずつ配列全体を表示することです。この方法を使用しない場合もあります。ASCII プロパティの GetString メソッドは文字列を返します。唯一の問題は、バイト配列には 0 ~ 255 の範囲の値が含まれ、表示できない文字が存在することです。そのため、バイト配列を Base64 文字列に変換してから表示します。表示される文字列には、多くの疑問符が含まれます。
Vijay のハッシュ値が出力に表示されます。



