首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> 關於.NET

Enterprise Library 實戰系列(十三):加密應用程式區塊——入門篇

     編輯:關於.NET

一、概述

Enterprise Library Cryptography Application Block 簡化了開發人員在應用程式中整合加密功能的方式,支援:

  • 資料加密/解密
  • 建立雜湊值
  • 比對雜湊值驗證資料完整性

特點:減少樣板程式碼、確保企業級一致加密實作、提供可擴展的提供者模型、封裝金鑰管理最佳實務。

二、組態工具設定步驟

  1. 新增 Cryptography Application Block,預設包含 Hash Provider 與 Symmetric Provider
    預設提供者
  2. 建立雜湊提供者:右鍵 Hash Provider → 選擇演算法(如 SHA256),可設定是否加鹽
    選擇雜湊演算法 加鹽設定
  3. 建立對稱加密提供者:選擇演算法(如 AES),點擊 General 產生金鑰
    選擇對稱演算法 產生金鑰 匯出金鑰 金鑰密碼保護
  4. 專案建置後事件複製組態檔:
    copy "$(ProjectDir)\*.config" "$(TargetDir)"

三、程式碼操作範例

1. 加密資料

byte[] valueToEncrypt = System.Text.Encoding.Unicode.GetBytes(this.inputForm.Input);
this.encryptedContents = Cryptographer.EncryptSymmetric(symmProvider, valueToEncrypt);
Array.Clear(valueToEncrypt, 0, valueToEncrypt.Length); // 清除敏感資料
string encryptedText = Convert.ToBase64String(this.encryptedContents);

2. 解密資料

byte[] decryptedContents = Cryptographer.DecryptSymmetric(symmProvider, this.encryptedContents);
string readableString = System.Text.Encoding.Unicode.GetString(decryptedContents);
Array.Clear(decryptedContents, 0, decryptedContents.Length);

3. 產生雜湊值

private byte[] GetHash(string plainText)
{
    byte[] valueToHash = System.Text.Encoding.UTF8.GetBytes(plainText);
    byte[] generatedHash = Cryptographer.CreateHash(hashProvider, valueToHash);
    Array.Clear(valueToHash, 0, valueToHash.Length);
    return generatedHash;
}

4. 比對雜湊值

private bool CompareHash(string plainText, byte[] existingHashValue)
{
    byte[] valueToHash = System.Text.Encoding.UTF8.GetBytes(plainText);
    bool matched = Cryptographer.CompareHash(hashProvider, valueToHash, existingHashValue);
    Array.Clear(valueToHash, 0, valueToHash.Length);
    return matched;
}

結語

加密應用程式區塊使用相對簡單,更多加密與安全知識請參考密碼學相關文獻。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved