ASP.NET データ暗号化を実現する対称暗号化アルゴリズム

ASP.NET データ暗号化を実現する対称暗号化アルゴリズム

対称暗号化アルゴリズムはどのようにして ASP.NET データ暗号化を実装するのでしょうか?それでは、以下で詳しく説明します。

以下は、対称暗号化アルゴリズムの ASP.NET データ暗号化コードの C# 実装です。必要に応じて、さまざまなアルゴリズムを変更できます。この記事では、Rijndael アルゴリズムを例として使用します。

  1.  
  2. システムの使用;
  3. System.IOを使用します
  4. System.Security.Cryptographyを使用します
  5. System.Textを使用します
  6.  
  7. 名前空間DataCrypto
  8. {
  9. /// ﹤要約﹥  
  10. /// ASP.NET データ暗号化対称暗号化アルゴリズム クラス 
  11. /// ﹤/要約﹥  
  12. 公共 クラスSymmetricMethod
  13. {
  14.  
  15. プライベートSymmetricAlgorithm mobjCryptoService;
  16. プライベート 文字列キー;
  17. /// ﹤要約﹥  
  18. /// ASP.NET データ暗号化対称暗号化クラス コンストラクター 
  19. /// ﹤/要約﹥  
  20. パブリック対称メソッド()
  21. {
  22. mobjCryptoService =新しいRijndaelManaged();
  23. キー = "Guz(%&hj7x89H$yuBI0456FtmaT5&fvHUFCy76*h%(HilJ$lhj!y6&(*jkP87jH7" ;
  24. }
  25. /// ﹤要約﹥  
  26. ///ASP.NETデータ暗号化でキーを取得する 
  27. /// ﹤/要約﹥  
  28. /// ﹤returns﹥Key﹤/returns﹥  
  29. プライベート バイト[] GetLegalKey()
  30. {
  31. 文字列sTemp = キー;
  32. mobjCryptoService.GenerateKey();
  33. バイト[] bytTemp = mobjCryptoService.Key;
  34. intキーの長さ = bytTemp.Length;
  35. if (sTemp.Length > KeyLength)
  36. sTemp = sTemp.Substring(0, キーの長さ);
  37. それ以外  if (sTemp.Length ﹤ KeyLength)
  38. sTemp = sTemp.PadRight(キーの長さ、 ' ' );
  39. ASCIIEncoding.ASCII.GetBytes(sTemp)を返します
  40. }
  41. /// ﹤要約﹥  
  42. /// ASP.NET データ暗号化により初期ベクトル IV を取得 
  43. /// ﹤/要約﹥  
  44. /// ﹤returns﹥初期テストベクトルIV﹤/returns﹥  
  45. プライベート バイト[] GetLegalIV()
  46. {
  47. 文字列sTemp = "E4ghj*Ghg7!rNIfb&95GUY86GfghUb#er57HBh(u%g6HJ($jhWk7&!hg4ui%$hjk" ;
  48. mobjCryptoService.GenerateIV();
  49. バイト[] bytTemp = mobjCryptoService.IV;
  50. int IVLength = bytTemp.Length;
  51. (sTemp.Length > IVLength)の場合
  52. sTemp = sTemp.Substring(0, IVLength);
  53. それ以外  (sTemp.Length < IVLength)の場合
  54. sTemp = sTemp.PadRight(IVLength, ' ' );
  55. ASCIIEncoding.ASCII.GetBytes(sTemp)を返します
  56. }
  57. /// ﹤要約﹥  
  58. /// ASP.NET データ暗号化の暗号化方式 
  59. /// ﹤/要約﹥  
  60. /// ﹤param name="Source"﹥暗号化する文字列﹤/param﹥  
  61. /// ﹤returns﹥暗号化された文字列﹤/returns﹥  
  62. 公共 文字列暗号化(文字列ソース)
  63. {
  64. バイト[] bytIn = UTF8Encoding.UTF8.GetBytes(ソース);
  65. メモリストリーム ms =新しいメモリストリーム();
  66. mobjCryptoService.Key = GetLegalKey();
  67. mobjCryptoService.IV = GetLegalIV();
  68. ICryptoTransform の暗号化 = mobjCryptoService.CreateEncryptor();
  69. CryptoStream cs =新しいCryptoStream(ms, encrypto, CryptoStreamMode.Write);
  70. cs.Write(bytIn, 0, bytIn.Length);
  71. cs.FlushFinalBlock();
  72. ms.Close();
  73. バイト[] bytOut = ms.ToArray();
  74. Convert.ToBase64String(bytOut)を返します
  75. }
  76. /// ﹤要約﹥  
  77. /// ASP.NET データの暗号化と復号化の方法 
  78. /// ﹤/要約﹥  
  79. /// ﹤param name="Source"﹥復号化する文字列﹤/param﹥  
  80. /// ﹤戻り値﹥復号化された文字列﹤/戻り値﹥  
  81. 公共 文字列Decrypto(文字列Source)
  82. {
  83. バイト[] bytIn = Convert.FromBase64String(ソース);
  84. MemoryStream ms =新しいMemoryStream(bytIn, 0, bytIn.Length);
  85. mobjCryptoService.Key = GetLegalKey();
  86. mobjCryptoService.IV = GetLegalIV();
  87. ICryptoTransform 暗号化 = mobjCryptoService.CreateDecryptor();
  88. CryptoStream cs = new CryptoStream(ms, encrypto, CryptoStreamMode.Read);
  89. ストリームリーダー sr =新しいストリームリーダー (cs);
  90. sr.ReadToEnd()を返します
  91. }
  92. }
  93. }

これで、対称暗号化アルゴリズムを使用して ASP.NET データ暗号化を実装する方法の紹介は終わりです。この紹介を通じて、対称暗号化アルゴリズムを使用して ASP.NET データ暗号化を実装する方法について理解していただけたら幸いです。

<<:  SQL Server 2008 の 9 つのデータ マイニング アルゴリズム

>>:  ハッシュアルゴリズムを使用した ASP.NET データ暗号化

ブログ    
ブログ    
ブログ    
ブログ    
ブログ    
ブログ    

推薦する

日常生活における人工知能の12の例

以下の記事では、私たちの日常生活に登場する人工知能の12の例を確認することができます。人工知能 (A...

私の国はAI医療機器の標準化を加速しています

今年は、新たに改訂された「医療機器監督管理条例」の実施初年度であり、企業の主な責任がより顕著になり、...

ディープフェイクが流行中!誰かがこれを使ってロシアの野党の人物を真似し、ズームで欧州の国会議員を「からかう」

[[399266]]ビッグデータダイジェスト制作著者: 王 イエ最近、欧州の一部の上級議員は困惑し...

...

AIOps 実装をスムーズに開始するための 3 つのヒント

[[386134]]企業は、激しい市場競争に直面して、ビジネスと IT の間にスムーズな「リンク」を...

フェイフェイ・リーがリストに載っています!バイデン氏、AI研究者にデータを公開するため12人からなるタスクフォースを設置

バイデン政権は木曜日、国家人工知能研究リソース(NAIRR)作業部会の設立を発表した。ワーキンググル...

AI への移行: 6 月の AI 資金調達活動の概要

情報化時代において、人工知能は急速に社会の変化と発展を推進しています。世界中の研究機関、企業、大学が...

胡勇 | 人工知能の時代を生き抜き、成長する

[[374681]]機械との競争から第二次機械革命へ人工知能革命は第四次産業革命と呼ばれています。第...

...

3Wイノベーションフェスティバル:先進的な起業家のアイデアが古都西安に流入

最近、西安で3Wイノベーションフェスティバルが開催されました。西安起業・イノベーション週間の代表的な...

普及モデルはどのようにして新しい世代の意思決定エージェントを構築するのでしょうか?自己回帰を超えて長いシーケンス計画軌道を生成する

部屋の中に立っていて、ドアに向かって歩こうとしていると想像してください。自己回帰を使用して、一歩ずつ...

COVID-19により公益事業の人工知能への移行が加速

人工知能 (AI) は、医療から自動車、小売、ファーストフードまで、考えられるほぼすべての業界で幅広...

科学サブ出版物:人間の脳は加速学習メカニズムを備えており、その計算能力は最新のAIアルゴリズムを上回っている

[[323595]]機械学習とディープラーニングのアルゴリズムは、脳内のニューロンを結びつけるシナプ...