e知識「e-chishiki.com」では、インドでの著名なIT著者、IT教育者、eセキュリティーの大家により作成された様々な種類のプログラミング言語に関する技術的なコンテンツを知識情報データーベースとして提供します。
オンライン書籍; Microsoft .NET Web アプリケーションセキュリティ
第 8 章 : 暗号化(書籍のプレビュー)
Microsoft .NET Web アプリケーションセキュリティ
インデックス
インドの情報セキュリティの大家が書き下ろした最新のセキュリティ書籍の一部をオンライン書籍としてご紹介します。書籍の情報は、こちらをご覧ください。
RSACryptoServiceProvider
c.cs
using System;
using System.Security.Cryptography;
using System.Text;
class zzz
{
static void Main()
{
byte[] d,e,de;
UnicodeEncoding b = new UnicodeEncoding();
d = b.GetBytes("Vijay Mukhi");
RSACryptoServiceProvider r = new RSACryptoServiceProvider();
e = r.Encrypt(d, false);
for ( int i = 0; i < e.Length ; i++)
Console.Write("{0:x}",e[i]);
Console.WriteLine();
de = r.Decrypt(e, false);
Console.WriteLine(b.GetString(de));
}
}
コマンド プロンプト ウィンドウ
C:\encrypt>c
8558992b3b3d6625389dcafee0984cbc55b44de29ab7d466f3b9680261c83d95ef9d34d4624b5379
b6f86c48cecfde8b3b3d1cc1857b6c42b82308374056c434eaf982b3d121f1d5f7fbd49a6ddd858b
81b0e3fbb521bb632a311fe75834e5d8aae4443e7a9e9c3863824c46c5455229126ab999e99ceb6c
4dd1cf2c97
Vijay Mukhi
このプログラムでは、非対称暗号化の概念について説明します。対称暗号化とは異なり、暗号化に使用するキーと復号化に使用するキーが違います。このアルゴリズムでは、公開キーと秘密キーの概念を使用します。
データが秘密キーで暗号化されている場合は公開キーでのみデータを復号化でき、データが公開キーで暗号化されている場合は秘密キーでのみデータを復号化できます。2 つのキーがセットで生成され、どちらを公開キーとして使用し、もう一方を秘密キーとして保持するかは、ユーザーが決定します。共有するキーは公開キーであり、共有しないキーは秘密キーです。
バイト配列を文字列に変換するには、UTF8 メソッドの代わりに UnicodeEncoding クラスを使用します。出力では 「Vijay Mukhi」 と示されますが、Unicode 形式になっています。
c.cs .. Console.WriteLine(Encoding.UTF8.GetString(de)); コマンド プロンプト ウィンドウ .. V i j a y M u k h i
これを UTF8 に変更すると、「Vijay Mukhi」 と表示されます。
暗号化するテキストを最初にバイト配列に変換し、サービス プロバイダ クラス RSACryptoServiceProvider をインスタンス化します。これはシールド クラスであり、384 ビットから 16384 ビットまで、8 ビット刻みで増えるサイズをサポートします。バイト配列のデータを暗号化するには Encrypt メソッドを使用し、復号化には Decrypt メソッドを使用します。暗号化クラスは、使用するのはとても簡単ですが、内部で行われていることを理解しようと思ったら一生あっても足りないでしょう。
この場合、キーはアルゴリズムによって生成されるので、任意のキーを使用することはできません。同じようにプログラムを作成することも、RSA サイトから入手できるプログラムを使用することもできます。



