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

ブログ    
ブログ    
ブログ    

推薦する

無人RV、全電動、未来は明るい

科学技術の急速な発展は、自動車産業の技術進歩を直接的に推進してきました。自動運転は自動車と技術の結晶...

フレームワークがシャム自己教師学習を統合、清華大学とセンスタイムが効果的な勾配形式を提案

[[443228]]現在、自己教師あり学習は、手動によるラベル付けを必要とせずに強力な視覚特徴抽出機...

Google の「Model Soup」が微調整により ImageNet リストのトップに躍り出ました。方法は半ページだけ

最近、Google は強力なコンピューティング リソースで再び大きな話題を呼び、Meta AI の友...

私の国のロボット産業には隠れた懸念があります。すべての関係者が協力して高品質の開発を推進します

近年、我が国のロボット産業は急速な発展傾向を示していますが、一方で、中核技術の弱さや粗利益率の低下な...

AIはインフラの応用と開発を定義する

人工知能は、データセンターのリソース管理において前例のない役割を果たしています。 AI テクノロジー...

Google がオールラウンドな音楽転写 AI を発表: 曲を一度聴くだけでピアノとバイオリンの楽譜がすべて手に入る

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

データサイエンスと人工知能の専門家がプログラミングスキルを向上させる方法

[[379310]]ビッグデータダイジェスト制作出典: medium編集者: Hippoプログラミン...

...

2021年は新たなAIを形作る

人工知能が世界を形作っています。コロナウイルスを克服する方法、自動車の自動化、ロボット工学など、世界...

2026年までに、AIを活用したARアプリケーションのユーザー数は2億人を超える

ABI Research は、2026 年までに、何らかの形で人工知能 (AI) を活用した拡張現実...

新しいテクノロジー、古い問題: NLP における聞こえない「声」

この記事はLeiphone.comから転載したものです。転載する場合は、Leiphone.com公式...

機械学習の再考: 人工知能はどのようにして「記憶を失う」ことを学ぶのか?

この記事はLeiphone.comから転載したものです。転載する場合は、Leiphone.com公式...

Metaがオープンソース「AIアベンジャーズアライアンス」の結成を主導、AMDと他の同盟国が800億ドルでOpenAI Nvidiaと戦う

今日、MetaとIBMが主導し、50を超えるテクノロジー企業、大学、機関が共同でAIアライアンスを設...