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 データ暗号化

ブログ    

推薦する

...

...

複雑なクエリと集計操作の実装: MongoDB データベースでの Java の応用

MongoDB データベースに Java を適用すると、複雑なクエリや集計操作を実装できるため、開発...

自動運転によって交通事故はどれくらい減らせるのでしょうか?

自動運転技術の発達により交通事故の発生率を減らすことができるのは確かです。しかし、交通事故を完全に避...

C言語の非数値計算でよく使われる5つの古典的なソートアルゴリズム

概要: ソートとは、一連の「順序付けられていない」レコードシーケンスを「順序付けられた」レコードシー...

GitHub のホット プロジェクト: 実稼働レベルのディープラーニング プロジェクトを構築するには?

ディープラーニング モデルを本番環境に導入することは、優れたパフォーマンスのモデルをトレーニングする...

弁護士は直感に基づいて仕事をするのでしょうか? AIはそうは思わない

法曹界は、統計学や数学に関しては常に比較的消極的でした。伝統的に、彼らの意見は長年、あるいは数十年に...

マイクロソフト、機械学習モデル向けの高性能推論エンジン ONNX をオープンソース化

Microsoft は、Linux、Windows、Mac プラットフォーム向けの ONNX 形式の...

小さなターゲットを検出するためのディープラーニングの一般的な方法

[[427475]]導入ディープラーニングによる物体検出、特に顔検出では、解像度が低い、画像がぼやけ...

...

二足歩行ロボット「キャシー」が機械学習を使って5kmのジョギングを完走

ロボット工学の世界では 4 年というのは長い期間ですが、特にオレゴン州立大学 (OSU) が開発した...

エッセンス共有サイトのランキングアルゴリズムのまとめ

ウェブサイトのランキングは、ウェブサイトの最適化を行うすべての人が最も気にしていることです。しかし、...

「怠け者」を助ける掃除ロボットの規模は600億台を超える

近年、世界経済の発展に伴い、人間の生活環境は徐々に改善され、人口も増加傾向にありますが、急速な人口増...

...

ガートナーの調査によると、ジェネレーティブAIは企業にとって新たな大きなリスクとなっている

この調査は、249人の上級企業リスク管理責任者を対象に実施され、2023年第2四半期の最も深刻な5つ...