手机版

ASP使用的详细说明 NET和C #加密和解密字符串

时间:2021-11-20 来源:互联网 编辑:宝哥软件园 浏览:

首先在web.config | app.config文件下增加如下代码:复制代码代码如下:可扩展标记语言版本='1.0 '?配置appSettings add Key=' IV ' value=' SuFjcEmp/TE='/add Key=' Key ' value=' KIPSToILGp6fl 3 gxjvmsn4 iajibbt '/appSettings/configurationiv 3360加密算法的初始向量密钥:加密算法的密钥。接着新建类CryptoHelper,作为加密帮助类。首先要从配置文件中得到静脉的和钥匙。所以基本代码如下复制代码代码如下:公共类CryptoHelper {//私有只读字符串IV=' SuFjcEmp/TE=';私有只读字符串四=字符串。空的;//私有只读字符串key=' Kipstoilgp6fl 3 gxjvmsn 4 iajizybbt ';私有只读字符串密钥=字符串。空的;///摘要///构造函数////摘要公共CryptoHelper(){ IV=配置管理器.AppSettings[' IV '];键=配置管理器AppSettings[' Key '];} }注意添加系统。Configuration.dll程序集引用。在获得了静脉的和钥匙之后,需要获取提供加密服务的服务类。在这里,使用的是系统。安全。密码学;命名空间下的TripleDESCryptoServiceProvider类。获取TripleDESCryptoServiceProvider的方法如下:复制代码代码如下:///summary ///获取加密服务类////summary////returns/returns private triple desryposerviceprovider GetCryptoProvider(){ triple desryposerviceprovider=new triple desryposerviceprovider();提供商。四=转换.来自base64字符串(IV);提供商。键=转换FromBase64String(键);返回提供者;}三重描述服务提供商两个有用的方法CreateEncryptor:创建对称加密器对象ICryptoTransform .CreateDecryptor:创建对称解密器对象ICryptoTransform加密器对象和解密器对象可以被密码流对象使用。来对流进行加密和解密密码流。的构造函数如下:公共加密流(流流、ICryptoTransform转换、加密流模式);使用改变对象对溪流进行转换。完整的加密字符串代码如下:复制代码代码如下:///summary ///获取加密后的字符串////summary///param name=' inputValue '输入值/param /返回/返回公共字符串get encrypted value(string inputValue){ tripledesryposerviceprovider=this .GetCryptoProvider();//创建内存流来保存加密后的流内存流Mstream=新内存流();//创建加密转换流加密流c流=新加密流(Mstream,提供程序CreateEncryptor(),CryptoStreamMode .写);//使用UTF8编码获取输入字符串的字节。byte[]到ncrypt=new utf8编码().GetBytes(inputValue);//将字节写到转换流里面去cStream .写(到ncrypt,0,到ncrypt .长度);cStream .flush fill block();//在调用转换流的最终刷新块方法后,内部就会进行转换了,此时mStream就是加密后的流了字节[]ret=MsStream .ToArray();//关闭流cStream .close();mStream .close();//将加密后的字节进行64编码返回转换.到base64字符串(ret);}解密方法也类似:复制代码代码如下:///summary ///获取解密后的值////summary///param name=' inputValue '经过加密后的字符串/param /返回/返回公共字符串GetDecryptedValue(字符串InputValue){ tripledecryposerviceprovider=this .GetCryptoProvider();字节[]输入等价=转换.来自base64字符串(输入值);//创建内存流保存解密后的数据内存流msDecrypt=新内存流();//创建转换流加密流csDecrypt=新加密流(msDecrypt,提供程序CreateDecryptor(),CryptoStreamMode .写);csDecrypt .写(输入等价,0,输入等价。长度);csDecrypt .flush fill block();csDecrypt .close();//获取字符串。

返回新的UTf8编码()。GetString(msDecrypt .ToArray());}完整的CryptoHelper代码如下:复制代码代码如下:使用系统;使用系统。集合。通用;使用系统Linq .使用系统。文字;使用系统。安全。密码学;使用系统IO;使用系统。配置;命名空间WindowsFormsApplication1 {公共类CryptoHelper {//私有只读字符串IV=' SuFjcEmp/TE=';私有只读字符串四=字符串。空的;//私有只读字符串key=' Kipstoilgp6fl 3 gxjvmsn 4 iajizybbt ';私有只读字符串密钥=字符串。空的;public CryptoHelper(){ IV=配置管理器.AppSettings[' IV '];键=配置管理器AppSettings[' Key '];} ///摘要///获取加密后的字符串////summary///param name=' inputValue '输入值/param /返回/返回公共字符串get encrypted value(string inputValue){ tripledesryposerviceprovider=this .GetCryptoProvider();//创建内存流来保存加密后的流内存流Mstream=新内存流();//创建加密转换流加密流c流=新加密流(Mstream,提供程序CreateEncryptor(),CryptoStreamMode .写);//使用UTF8编码获取输入字符串的字节。byte[]到ncrypt=new utf8编码().GetBytes(inputValue);//将字节写到转换流里面去cStream .写(到ncrypt,0,到ncrypt .长度);cStream .flush fill block();//在调用转换流的最终刷新块方法后,内部就会进行转换了,此时mStream就是加密后的流了字节[]ret=MsStream .ToArray();//关闭流cStream .close();mStream .close();//将加密后的字节进行64编码返回转换.到base64字符串(ret);} ///摘要///获取加密服务类////summary////returns/returns private triple desryposerviceprovider GetCryptoProvider(){ triple desryposerviceprovider=new triple desryposerviceprovider();提供商。四=转换.来自base64字符串(IV);提供商。键=转换FromBase64String(键);返回提供者;} ///摘要///获取解密后的值////summary///param name=' inputValue '经过加密后的字符串/param /返回/返回公共字符串GetDecryptedValue(字符串InputValue){ tripledecryposerviceprovider=this .GetCryptoProvider();字节[]输入等价=转换.来自base64字符串(输入值);//创建内存流保存解密后的数据内存流msDecrypt=新内存流();//创建转换流加密流csDecrypt=新加密流(msDecrypt,提供程序CreateDecryptor(),CryptoStreamMode .写);csDecrypt .写(输入等价,0,输入等价。长度);csDecrypt .flush fill block();csDecrypt .close();//获取字符串。返回新的utf8编码()。GetString(msDecrypt .ToArray());} }}使用例子image

版权声明:ASP使用的详细说明 NET和C #加密和解密字符串是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。