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

ブログ    
ブログ    

推薦する

シャッフルアルゴリズムの2つの実装の比較

方法1: ランダム生成まず、非常に一般的な方法であるランダム生成法(私が名付けました)を紹介します。...

新しいAIプログラミング言語はディープラーニングを超える

MIT の研究者チームは、人工知能の分野を初心者にとってよりアクセスしやすいものにするとともに、専門...

AI は「彼ら」による盗聴を防ぐことができますか?

次のような状況に遭遇したことがあるかもしれません:携帯電話でアプリを開くと、最初に表示されるのは数分...

2022年の人工知能の7つのトレンド

近い将来に大きな価値を生み出す可能性のある技術の予測となると、人工知能は間違いなくリストのトップに位...

中国のAI企業は世界の資金の70%を占めているが、その巨大なブームの裏には隠れた懸念がある

今年に入ってから、人工知能分野の発展は新たな盛り上がりを見せています。消費者レベルの人工知能アプリケ...

「人工知能+学習」は教育をより良くするのでしょうか?

「教育は死んだが、学習は不滅である。」半世紀前、アメリカの教育思想家イリイチは著書『脱学校社会』の...

南京科技大学とオックスフォード大学は、1行のコードでゼロショット学習法の効果を大幅に向上させるプラグアンドプレイ分類モジュールを提案した。

ゼロショット学習は、トレーニングプロセス中に出現しなかったカテゴリの分類に重点を置いています。意味記...

開発者に人気の機械学習 API 10 選

つい最近まで、人工知能には科学者が白衣を着て研究室で研究を行う必要があると考えられていました。この科...

...

暗号通貨ボットで利益を上げる方法: トレーディングボットの説明

暗号通貨は、その極端な変動性で知られています。市場の価格は非常に急速に変動するため、トレーダーが市場...

新しい機械学習システムがロボットに社会的なスキルを与える

ロボットは大学のキャンパスに食べ物を配達したり、ゴルフコースでホールインワンを達成したりすることがで...

専門家:歩行者の安全問題を解決するために都市は自動運転だけに頼ることはできない

自動運転技術が業界全体で開発のマイルストーンに到達し続ける一方で、都市は自動運転車(AV)の目標を補...