700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > Asp.net C# 加密解密字符串

Asp.net C# 加密解密字符串

时间:2019-07-10 09:15:22

相关推荐

Asp.net C# 加密解密字符串

后端开发|C#.Net教程

, .net, C, C++, C# ,C# 加密解密字符串

后端开发-C#.Net教程

首先在web.config | app.config 文件下增加如下代码:

域名授权源码作用,低功耗ubuntu主机,tomcat7根目录,html爬虫robit,php实地培训有宿舍的,潞城seo软文lzw

IV:加密算法的初始向量。

互助程序源码,vscode任务栏消失,Ubuntu的优麒麟,tomcat 漫画,sqlite 拆分,响应式网页设计模板,织梦数据库怎么打开,服务器带宽是什么,id数据插件,redux 前端框架,爬虫RQ,node和php,长治seo,springboot日志堆栈,正则表达式 提取标签,欧美服装网站模板,图片链接网页代码,模板猫,后台管理系统logo,页面刷新css样式失效,电影院管理系统php,aspx网页程序demolzw

Key:加密算法的密钥。

课堂实时答题网站源码,ubuntu打开运行,爬虫python入门培训,php526,seo业务推广lzw

接着新建类CryptoHelper,作为加密帮助类。

首先要从配置文件中得到IV 和Key。所以基本代码如下:

public class CryptoHelper

{

//private readonly string IV = “SuFjcEmp/TE=”;

private readonly string IV = string.Empty;

//private readonly string Key = “KIPSToILGp6fl+3gXJvMsN4IajizYBBT”;

private readonly string Key = string.Empty;

///

public CryptoHelper()

{

IV = ConfigurationManager.AppSettings[“IV”];

Key = ConfigurationManager.AppSettings[“Key”];

}

}

注意添加System.Configuration.dll程序集引用。

在获得了IV 和Key 之后,需要获取提供加密服务的Service 类。

在这里,使用的是System.Security.Cryptography; 命名空间下的TripleDESCryptoServiceProvider类。

获取TripleDESCryptoServiceProvider 的方法如下:

///

///

private TripleDESCryptoServiceProvider GetCryptoProvider()

{

TripleDESCryptoServiceProvider provider = new TripleDESCryptoServiceProvider();

provider.IV = Convert.FromBase64String(IV);

provider.Key = Convert.FromBase64String(Key);

return provider;

}

TripleDESCryptoServiceProvider 两个有用的方法

CreateEncryptor:创建对称加密器对象ICryptoTransform.

CreateDecryptor:创建对称解密器对象ICryptoTransform

加密器对象和解密器对象可以被CryptoStream对象使用。来对流进行加密和解密。

cryptoStream 的构造函数如下:

public CryptoStream(Stream stream, ICryptoTransform transform, CryptoStreamMode mode);

使用transform 对象对stream 进行转换。

完整的加密字符串代码如下:

///

/// 输入值. ///

public string GetEncryptedValue(string inputValue)

{

TripleDESCryptoServiceProvider provider = this.GetCryptoProvider();

// 创建内存流来保存加密后的流

MemoryStream mStream = new MemoryStream();

// 创建加密转换流

CryptoStream cStream = new CryptoStream(mStream,

provider.CreateEncryptor(), CryptoStreamMode.Write);

// 使用UTF8编码获取输入字符串的字节。

byte[] toEncrypt = new UTF8Encoding().GetBytes(inputValue);

// 将字节写到转换流里面去。

cStream.Write(toEncrypt, 0, toEncrypt.Length);

cStream.FlushFinalBlock();

// 在调用转换流的FlushFinalBlock方法后,内部就会进行转换了,此时mStream就是加密后的流了。

byte[] ret = mStream.ToArray();

// Close the streams.

cStream.Close();

mStream.Close();

//将加密后的字节进行64编码。

return Convert.ToBase64String(ret);

}

解密方法也类似:

///

/// 经过加密后的字符串. ///

public string GetDecryptedValue(string inputValue)

{

TripleDESCryptoServiceProvider provider = this.GetCryptoProvider();

byte[] inputEquivalent = Convert.FromBase64String(inputValue);

// 创建内存流保存解密后的数据

MemoryStream msDecrypt = new MemoryStream();

// 创建转换流。

CryptoStream csDecrypt = new CryptoStream(msDecrypt,

provider.CreateDecryptor(),

CryptoStreamMode.Write);

csDecrypt.Write(inputEquivalent, 0, inputEquivalent.Length);

csDecrypt.FlushFinalBlock();

csDecrypt.Close();

//获取字符串。

return new UTF8Encoding().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 WindowsFormsApplication1

{

public class CryptoHelper

{

//private readonly string IV = “SuFjcEmp/TE=”;

private readonly string IV = string.Empty;

//private readonly string Key = “KIPSToILGp6fl+3gXJvMsN4IajizYBBT”;

private readonly string Key = string.Empty;

public CryptoHelper()

{

IV = ConfigurationManager.AppSettings[“IV”];

Key = ConfigurationManager.AppSettings[“Key”];

}

///

/// 输入值. ///

public string GetEncryptedValue(string inputValue)

{

TripleDESCryptoServiceProvider provider = this.GetCryptoProvider();

// 创建内存流来保存加密后的流

MemoryStream mStream = new MemoryStream();

// 创建加密转换流

CryptoStream cStream = new CryptoStream(mStream,

provider.CreateEncryptor(), CryptoStreamMode.Write);

// 使用UTF8编码获取输入字符串的字节。

byte[] toEncrypt = new UTF8Encoding().GetBytes(inputValue);

// 将字节写到转换流里面去。

cStream.Write(toEncrypt, 0, toEncrypt.Length);

cStream.FlushFinalBlock();

// 在调用转换流的FlushFinalBlock方法后,内部就会进行转换了,此时mStream就是加密后的流了。

byte[] ret = mStream.ToArray();

// Close the streams.

cStream.Close();

mStream.Close();

//将加密后的字节进行64编码。

return Convert.ToBase64String(ret);

}

///

///

private TripleDESCryptoServiceProvider GetCryptoProvider()

{

TripleDESCryptoServiceProvider provider = new TripleDESCryptoServiceProvider();

provider.IV = Convert.FromBase64String(IV);

provider.Key = Convert.FromBase64String(Key);

return provider;

}

///

/// 经过加密后的字符串. ///

public string GetDecryptedValue(string inputValue)

{

TripleDESCryptoServiceProvider provider = this.GetCryptoProvider();

byte[] inputEquivalent = Convert.FromBase64String(inputValue);

// 创建内存流保存解密后的数据

MemoryStream msDecrypt = new MemoryStream();

// 创建转换流。

CryptoStream csDecrypt = new CryptoStream(msDecrypt,

provider.CreateDecryptor(),

CryptoStreamMode.Write);

csDecrypt.Write(inputEquivalent, 0, inputEquivalent.Length);

csDecrypt.FlushFinalBlock();

csDecrypt.Close();

//获取字符串。

return new UTF8Encoding().GetString(msDecrypt.ToArray());

}

}

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。