Enterprise Library Cryptography Application Block 簡化了開發人員在應用程式中整合加密功能的方式,支援:
特點:減少樣板程式碼、確保企業級一致加密實作、提供可擴展的提供者模型、封裝金鑰管理最佳實務。
copy "$(ProjectDir)\*.config" "$(TargetDir)"
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);
byte[] decryptedContents = Cryptographer.DecryptSymmetric(symmProvider, this.encryptedContents);
string readableString = System.Text.Encoding.Unicode.GetString(decryptedContents);
Array.Clear(decryptedContents, 0, decryptedContents.Length);
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;
}
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;
}
加密應用程式區塊使用相對簡單,更多加密與安全知識請參考密碼學相關文獻。