DES暗号化および復号化アルゴリズムを使用します

DES暗号化および復号化アルゴリズムを使用します

最も一般的な暗号化はDES、MD5、IDEA、AESなどのアルゴリズム、このエッセイは、DES暗号化と復号化アルゴリズムの使用を記載します

まず、DESアルゴリズムを教えて:

DESアルゴリズムは、対称暗号暗号であり、米国のデータ暗号化規格は、IBMによって開発された対称暗号の暗号化アルゴリズム1972年、米国であるとしても知られています。、キー56は、実際にはDES操作に関与している、64ビットの鍵長が64をグループ化し、平文(8,16,24,32,40,48,56,64最初のビットがパリティビットであり、そのような各暗号文そのパケットが暗号文ビットを設定または代替的に交換法により形成された後奇数キー1)平文と56ビットの鍵暗号化方式を有しています。

DESアルゴリズムの基本原則:

キー、データ、モード:その入口3つのパラメータがあります。使用される暗号化と復号化キーのキー、データのデータ暗号化と復号化、その作業モードに。場合モード暗号化モード、モードは、復号化モード、データを解読するために使用されるキーであり、64ビットの平文パケット、平文形式のグループ、データを暗号化するために使用されるキーに記載の方法。それは高い安全性を有するように実際には、唯一、56で64ビットキーを使用します。

一般的に使用されるDESの暗号化および復号化アルゴリズムカテゴリを添付:

1  使用してシステムを。
2  使用System.IOと、
3  使用System.Security.Cryptographyと、
4  使用System.Textのを。
5  
6  名前空間CodeFirst.Common
 7  {
 8      パブリック クラス暗号
 9      {
 10          ///  <要約> 
11          /// 加密
 12          ///  </要約> 
13          ///  <PARAM NAME = "inputStringから"> 加密的字符串</ PARAM> 
14          ///  <戻る> </戻る> 
15          公共の 静的 ストリング DESENCRYPT(inputStringから)
 16          {
 17              リターンDESENCRYPT(inputStringから、KEY)。
18          }
 19          ///  <要約> 
20          /// 解密
 21          ///  </要約> 
22          ///  ます。<param name = "inputStringから"> 解密的字符串</ PARAM> 
23          ///  <戻ります> < />返し
24          パブリック 静的 文字列 DESDECRYPT(inputStringから)
 25          {
 26              リターンDESDECRYPT(inputStringから、KEY)。
27         }
 28          ///  <まとめ> 
29          /// キー
 30          ///  </要約> 
31である         パブリック 静的 文字列キー
 32          {
 33は             GET 
34は             {
 35                  リターン " hongye10 " ;
 36              }
 37          }
 38である         ///  <まとめ> 
39          /// 暗号化された文字列
 40          /// 注:キーは8ビットでなければならない
 41である         ///  </要約> 
42である         ///  <PARAM NAME = "strText"> </ param>の
43です         ///  <PARAM NAME = "encryptkey"> キー</ param>の
44です         ///  <PARAM NAME = "encryptkey"> リターン暗号化された文字列</ param>の
45          のパブリック 静的 文字列 DESENCRYPT(ストリング inputStringから、文字列encryptkey)
 46である         {
 47              バイト [] byKey = NULL ;
 48              バイト [] IV = { 0x12を0x34の0x560x78と0x90を0xAB0xCD0xEFという};
 49              試みる
50              {
 51で                  byKey = System.Text.Encoding.UTF8.GetBytes(encryptKey.Substring(08。 ));
 52である                  DES = DESCryptoServiceProvider 新しい新しい DESCryptoServiceProvider(); // 暗号化サービスプロバイダクラス
53は                 バイト [] inputByteArray = Encoding.UTF8.GetBytes(inputStringから);
 54は                  MemoryStreamをMS = 新しい新規のMemoryStream(); // メモリストリーム
 55                  // ストリームコンバータへの暗号化されたデータストリーム
56である                  CryptoStream CS = 新しい新CryptoStream(MS、des.CreateEncryptor(byKey、IV)、CryptoStreamMode.Write)。
57                  cs.Write(inputByteArray、0 、inputByteArray.Length)。
58                  cs.FlushFinalBlock()。
59                  リターンConvert.ToBase64String(ms.ToArray())。
60              }
 61              キャッチ(のSystem.Exceptionエラー)
 62              {
 63                  //はerror.Messageを返します。
64                  リターン はnull ;
65              }
 66          }
 67          ///  <要約> 
68          /// 解密字符串
 69         ///  </要約> 
70          ///  <PARAM NAME = "this.inputString"> 文字列の暗号化を追加</ param>の
71です         ///  <PARAM NAME = "decryptKey"> キー</ param>の
72を         ///  <PARAM NAME = "decryptKey"> 復号化された文字列を返す</ PARAM> 
73である         パブリック 静的 文字列 DESDECRYPT( inputStringから、文字列decryptKey)
 74          {
 75              バイト [] byKey = NULL ;
 76              バイト [] = {IV 0x12を0x34の0x560x78と0x90を0xAB0xCD0xEFという}。
77              バイト [] inputByteArray = 新しいバイト[inputString.Length]。
78は             試す
79              {
 80                  byKey = System.Text.Encoding.UTF8.GetBytes(decryptKey.Substring(08 ))。
81の                  DESCryptoServiceProvider DES = 新しいDESCryptoServiceProvider()。
82                  inputByteArray = Convert.FromBase64String(inputStringから)。
83                  MemoryStreamをミリ秒= 新しいですMemoryStream();
84の                  CryptoStream CS = 新しいCryptoStream(MS、des.CreateDecryptor(byKey、IV)、CryptoStreamMode.Write)。
85                  cs.Write(inputByteArray、0 、inputByteArray.Length)。
86                  cs.FlushFinalBlock()。
87                  System.Text.Encodingエンコード= 新しいSystem.Text.UTF8Encoding()。
88                  リターンencoding.GetString(ms.ToArray());
89              }
 90              キャッチ(のSystem.Exceptionエラー)
 91              {
 92                  //はerror.Messageを返します。
93                  リターン ヌル;
94              }
 95          }
 96      }
 97 }

 

おすすめ

転載: www.cnblogs.com/gygg/p/11274696.html