e知識「e-chishiki.com」では、インドでの著名なIT著者、IT教育者、eセキュリティーの大家により作成された様々な種類のプログラミング言語に関する技術的なコンテンツを知識情報データーベースとして提供します。
オンライン書籍; Microsoft .NET Web アプリケーションセキュリティ
第 8 章 : 暗号化(書籍のプレビュー)
Microsoft .NET Web アプリケーションセキュリティ
インドの情報セキュリティの大家が書き下ろした最新のセキュリティ書籍の一部をオンライン書籍としてご紹介します。書籍の情報は、こちらをご覧ください。
Rijndael
対称アルゴリズムについての解説を終わる前に、Rijndael (レインダール) と呼ばれるアルゴリズムについて説明します。このアルゴリズムは、ServiceProvider には含まれません。
c.cs
using System;
using System.Security.Cryptography;
using System.Text;
using System.IO;
class zzz
{
static void Main()
{
Rijndael r = Rijndael.Create();
FileStream f = File.Open("z.txt", FileMode.OpenOrCreate);
CryptoStream c = new CryptoStream(f,r.CreateEncryptor(r.Key, r.IV),CryptoStreamMode.Write);
StreamWriter s = new StreamWriter(c);
s.WriteLine("Vijay Mukhi2");
s.Close();
c.Close();
f.Close();
FileStream fo = File.Open("z.txt", FileMode.OpenOrCreate);
CryptoStream co = new CryptoStream(fo,r.CreateDecryptor(r.Key, r.IV),CryptoStreamMode.Read);
StreamReader so = new StreamReader(co);
string a = null;
a = so.ReadLine();
so.Close();
co.Close();
fo.Close();
Console.WriteLine(a);
}
}
コマンド プロンプト ウィンドウ
C:\encrypt>c
Vijay Mukhi2
Create メソッドで Rijndael オブジェクトの r を作成した後、z.txt という名前のファイルを作成します。
次に、CryptoStream 関数を使用してファイル ストリームに接続し、キーと IV を使用して実際の Encryption オブジェクトを作成します。ここで、暗号化オブジェクトを直接使用せず、代わりにその周りに StreamWriter ラッパーの s を作成します。データ Vijay Mukhi2 に Rijndael アルゴリズムを適用した後、お馴染みの WriteLine メソッドを使用してファイルに書き込みます。
ストリームを閉じますが、作成とは逆に StreamWriter の s、CryptoStream の c、FileStream の f の順序で行います。ストリームを閉じることで、データは確実にファイルに追加されます。z.txt には、どのような形であれ Vijay Mukhi2 を示すものはありません。
ファイルを復号化するには、z.txt ファイルを読み取り用に開き、CryptoStream オブジェクトの co を作成します。まず CreateDecryptor オブジェクトがあり、次にモードが Read であるという 2 つの点が変更されています。このオブジェクトは StreamReader の so を使用してラップされており、信頼できる ReadLine メソッドを使用してデータを読み取ります。ReadLine 関数に渡すパラメータにより、確実にファイルからのデータが最初に復号化されます。最後に、取得した値を画面に表示します。
.Net Framework によって作成される抽象化の層があるので、さまざまな形式のデータを簡単に取り扱うことができます。



