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の、0x56、0x78と、0x90を、0xAB、0xCD、0xEFという}; 49 試みる 50 { 51で byKey = System.Text.Encoding.UTF8.GetBytes(encryptKey.Substring(0、8。 )); 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の、0x56、0x78と、0x90を、0xAB、0xCD、0xEFという}。 77 バイト [] inputByteArray = 新しいバイト[inputString.Length]。 78は 試す 79 { 80 byKey = System.Text.Encoding.UTF8.GetBytes(decryptKey.Substring(0、8 ))。 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 }