知识大全 Asp.net,C# 加密解密字符串
Posted 字节
篇首语:石可破也,而不可夺坚;丹可磨也,而不可夺赤。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Asp.net,C# 加密解密字符串相关的知识,希望对你有一定的参考价值。
Asp.net,C# 加密解密字符串 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
首先在nfig | nfig 文件下增加如下代码 <?xml version= ?> <configuration> <appSettings> <add key= IV value= SuFjcEmp/TE= /> <add key= Key value= KIPSToILGp fl+ gXJvMsN IajizYBBT /> </appSettings> </configuration> IV:加密算法的初始向量 Key:加密算法的密钥 接着新建类CryptoHelper 作为加密帮助类 首先要从配置文件中得到IV 和Key 所以基本代码如下 public class CryptoHelper //private readonly string IV = SuFjcEmp/TE= ; private readonly string IV = string Empty; //private readonly string Key = KIPSToILGp fl+ gXJvMsN IajizYBBT ; private readonly string Key = string Empty; /// <summary> ///构造函数 /// </summary> public CryptoHelper() IV = ConfigurationManager AppSettings[ IV ]; Key = ConfigurationManager AppSettings[ Key ]; 注意添加System Configuration dll程序集引用 在获得了IV 和Key 之后 需要获取提供加密服务的Service 类 在这里 使用的是System Security Cryptography; 命名空间下的TripleDESCryptoServiceProvider类 获取TripleDESCryptoServiceProvider 的方法如下 /// <summary> /// 获取加密服务类 /// </summary> /// <returns></returns> private TripleDESCryptoServiceProvider GetCryptoProvider() TripleDESCryptoServiceProvider provider = new TripleDESCryptoServiceProvider() provider IV = Convert FromBase String(IV) provider Key = Convert FromBase String(Key) return provider; TripleDESCryptoServiceProvider 两个有用的方法 CreateEncryptor:创建对称加密器对象ICryptoTransform CreateDecryptor:创建对称解密器对象ICryptoTransform 加密器对象和解密器对象可以被CryptoStream对象使用 来对流进行加密和解密 cryptoStream 的构造函数如下 public CryptoStream(Stream stream ICryptoTransform transform CryptoStreamMode mode) 使用transform 对象对stream 进行转换 完整的加密字符串代码如下 /// <summary> /// 获取加密后的字符串 /// </summary> /// <param name= inputValue >输入值 </param> /// <returns></returns> public string GetEncryptedValue(string inputValue) TripleDESCryptoServiceProvider provider = this GetCryptoProvider() // 创建内存流来保存加密后的流 MemoryStream mStream = new MemoryStream() // 创建加密转换流 CryptoStream cStream = new CryptoStream(mStream provider CreateEncryptor() CryptoStreamMode Write) // 使用UTF 编码获取输入字符串的字节 byte[] toEncrypt = new UTF Encoding() GetBytes(inputValue) // 将字节写到转换流里面去 cStream Write(toEncrypt toEncrypt Length) cStream FlushFinalBlock() // 在调用转换流的FlushFinalBlock方法后 内部就会进行转换了 此时mStream就是加密后的流了 byte[] ret = mStream ToArray() // Close the streams cStream Close() mStream Close() //将加密后的字节进行 编码 return Convert ToBase String(ret) 解密方法也类似 /// <summary> /// 获取解密后的值 /// </summary> /// <param name= inputValue >经过加密后的字符串 </param> /// <returns></returns> public string GetDecryptedValue(string inputValue) TripleDESCryptoServiceProvider provider = this GetCryptoProvider() byte[] inputEquivalent = Convert FromBase String(inputValue) // 创建内存流保存解密后的数据 MemoryStream msDecrypt = new MemoryStream() // 创建转换流 CryptoStream csDecrypt = new CryptoStream(msDecrypt provider CreateDecryptor() CryptoStreamMode Write) csDecrypt Write(inputEquivalent inputEquivalent Length) csDecrypt FlushFinalBlock() csDecrypt Close() //获取字符串 return new UTF Encoding() GetString(msDecrypt ToArray())
完整的CryptoHelper代码如下 using System; using System Collections Generic; using System Linq; using System Text; using System Security Cryptography; using System IO; using System Configuration; namespace WindowsFormsApplication public class CryptoHelper //private readonly string IV = SuFjcEmp/TE= ; private readonly string IV = string Empty; //private readonly string Key = KIPSToILGp fl+ gXJvMsN IajizYBBT ; private readonly string Key = string Empty; public CryptoHelper() IV = ConfigurationManager AppSettings[ IV ]; Key = ConfigurationManager AppSettings[ Key ]; /// <summary> /// 获取加密后的字符串 /// </summary> /// <param name= inputValue >输入值 </param> /// <returns></returns> public string GetEncryptedValue(string inputValue) TripleDESCryptoServiceProvider provider = this GetCryptoProvider() // 创建内存流来保存加密后的流 MemoryStream mStream = new MemoryStream() // 创建加密转换流 CryptoStream cStream = new CryptoStream(mStream provider CreateEncryptor() CryptoStreamMode Write) // 使用UTF 编码获取输入字符串的字节 byte[] toEncrypt = new UTF Encoding() GetBytes(inputValue) // 将字节写到转换流里面去 cStream Write(toEncrypt toEncrypt Length) cStream FlushFinalBlock() // 在调用转换流的FlushFinalBlock方法后 内部就会进行转换了 此时mStream就是加密后的流了 byte[] ret = mStream ToArray() // Close the streams cStream Close() mStream Close() //将加密后的字节进行 编码 return Convert ToBase String(ret) /// <summary> /// 获取加密服务类 /// </summary> /// <returns></returns> private TripleDESCryptoServiceProvider GetCryptoProvider() TripleDESCryptoServiceProvider provider = new TripleDESCryptoServiceProvider() provider IV = Convert FromBase String(IV) provider Key = Convert FromBase String(Key) return provider; /// <summary> /// 获取解密后的值 /// </summary> /// <param name= inputValue >经过加密后的字符串 </param> /// <returns></returns> public string GetDecryptedValue(string inputValue) TripleDESCryptoServiceProvider provider = this GetCryptoProvider() byte[] inputEquivalent = Convert FromBase String(inputValue) // 创建内存流保存解密后的数据 MemoryStream msDecrypt = new MemoryStream() // 创建转换流 CryptoStream csDecrypt = new CryptoStream(msDecrypt provider CreateDecryptor() CryptoStreamMode Write) csDecrypt Write(inputEquivalent inputEquivalent Length) csDecrypt FlushFinalBlock() csDecrypt Close() //获取字符串 return new UTF Encoding() GetString(msDecrypt ToArray()) 使用例子 cha138/Article/program/net/201311/12266相关参考
知识大全 加密和解密ASP.NET配置文件(Web.config)
加密和解密ASP.NET配置文件(Web.config) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下
用ASP.NET加密Cookie数据 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Cookie
使用ASP.Net加密Cookie[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
使用ASP.Net加密Cookie[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
使用ASP.Net加密Cookie[4] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
使用ASP.Net加密Cookie[3] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
使用ASP.Net加密Cookie[5] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
用ASP.NET加密口令的方法 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 每当我们要建立数据
ASP.NET中几种加密方法 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! MD的全称是Mess
ASP.Net中如何实现RSA加密 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在我们实际运用