1copy "$(ProjectDir)\*.config" "$(TargetDir)"
5.编写代码
加密数据
1/**////转换原字符串成字节数组 2byte[] valueToEncrypt = System.Text.Encoding.Unicode.GetBytes(this.inputForm.Input); 3 4/**////加密数据 5this.encryptedContents = Cryptographer.EncryptSymmetric(symmProvider, valueToEncrypt); 6 7/**////清空数组中的内容,很好的编程实践 8Array.Clear(valueToEncrypt, 0, valueToEncrypt.Length); 9 10/**////转换加密后的内容成可以显示的Base64String 11string encryptedText = Convert.ToBase64String(this.encryptedContents);
解密数据
1/**////解密数据 2byte[] decryptedContents = Cryptographer.DecryptSymmetric(symmProvider,this.encryptedContents); 3 4/**//// 获取字符串并显示 5string readableString = System.Text.Encoding.Unicode.GetString(decryptedContents); 6 7/**////清空数组中的内容 8Array.Clear(decryptedContents, 0, decryptedContents.Length);
获取一个Hash值
1/**//// <summary> 2 /// 获取一个Hash值 3 /// </summary> 4 /// <param name="plainText"></param> 5 /// <returns></returns> 6 private byte[] GetHash(string plainText) 7 { 8 byte[] valueToHash = System.Text.Encoding.UTF8.GetBytes(plainText); 9 10 byte[] generatedHash = Cryptographer.CreateHash(hashProvider, valueToHash); 11 12 /**//// 从内存中清空 13 Array.Clear(valueToHash, 0, valueToHash.Length); 14 15 return generatedHash; 16 }
1/**//// <summary> 2 /// 比较Hash值 3 /// </summary> 4 /// <param name="plainText"></param> 5 /// <param name="existingHashValue"></param> 6 /// <returns></returns> 7 private bool CompareHash(string plainText, byte[] existingHashValue) 8 { 9 byte[] valueToHash = System.Text.Encoding.UTF8.GetBytes(plainText); 10 11 bool matched = Cryptographer.CompareHash(hashProvider, valueToHash, existingHashValue); 12 13 /**//// 从内存中清空 14 Array.Clear(valueToHash, 0, valueToHash.Length); 15 16 return matched; 17 }
总结
Cryptography Application Block应用程序块相对来说使用比较简单,有关加密和安全的更多知识,请大家多参考密码学方面的文章,这里就不详细介绍了。