using System;
using System.Collections.Generic;
using System.Text;
using System.Security.Cryptography;
using System.IO;
using System.Xml;
namespace MyQuery.Utils
{
/// <summary>
/// 加解密处理方法工具
/// by 贾世义 2009-3-5
/// </summary>
public static class EncryptHelper
{
/// <summary>
/// 获得MD5加密后的字符串(不可逆)
/// </summary>
/// <param name="password">明码</param>
/// <returns></returns>
public static string GetPassword(string password)
{
string result = "";
MD5 md5 = MD5.Create();//实例化一个md5对像
// 加密后是一个字节类型的数组,这里要注意编码UTF8/Unicode等的选择
byte[] s = md5.ComputeHash(Encoding.UTF8.GetBytes(password));
// 通过使用循环,将字节类型的数组转换为字符串,此字符串是常规字符格式化所得
for (int i = 0; i < s.Length; i++)
{
// 将得到的字符串使用十六进制类型格式。格式后的字符是小写的字母,如果使用大写(X)则格式后的字符是大写字符
result = result + s[i].ToString("X");
}
return result;
}
/// <summary>
/// 获得Des加密后字符串
/// </summary>
/// <param name="data">待加密字符</param>
/// <param name="keyCode1">密钥</param>
/// <param name="keyCode2">密钥</param>
/// <returns></returns>
public static string DesEncode(string data, string keyCode1, string keyCode2)
{
byte[] byKey = GetKey(keyCode1);
byte[] byIV = GetKey(keyCode2);
DESCryptoServiceProvider cryptoProvider = new DESCryptoServiceProvider();
int i = cryptoProvider.KeySize;
MemoryStream ms = new MemoryStream();
CryptoStream cst = new CryptoStream(ms, cryptoProvider.CreateEncryptor(byKey, byIV), CryptoStreamMode.Write);
StreamWriter sw = new StreamWriter(cst);
sw.Write(data);
sw.Flush();
cst.FlushFinalBlock();
sw.Flush();
return Convert.ToBase64String(ms.GetBuffer(), 0, (int)ms.Length);
}
/// <summary>
/// 获得Des解密后字符串
/// </summary>
/// <param name="data">待解密字符串</param>
/// <param name="keyCode1">密钥</param>
/// <param name="keyCode2">密钥</param>
/// <returns></returns>
public static string DesDecode(string data, string keyCode1, string keyCode2)
{
byte[] byKey = GetKey(keyCode1);
byte[] byIV = GetKey(keyCode2);
byte[] byEnc;
try
{
byEnc = Convert.FromBase64String(data);
}
catch
{
return null;
}
DESCryptoServiceProvider cryptoProvider = new DESCryptoServiceProvider();
MemoryStream ms = new MemoryStream(byEnc);
CryptoStream cst = new CryptoStream(ms, cryptoProvider.CreateDecryptor(byKey, byIV), CryptoStreamMode.Read);
StreamReader sr = new StreamReader(cst);
return sr.ReadToEnd();
}
}
}
欢迎访问:http://121.18.78.216 适易查询分析、工作流、内容管理及项目管理演示平台
分享到:
相关推荐
C#实现的基于EmguCV(OpenCV .net封装)的图像数字水印加解密算法+源代码+文档说明 - 不懂运行,下载完可以私聊问,可远程教学 该资源内项目源码是个人的毕设,代码都测试ok,都是运行成功后才上传资源,答辩评审平均...
Powerbuilder 12.5 SM3、SM4加密解密。HTTP post接口有DLL有代码。一看就明白。dll是C#封装。非常实用
C#封装生成了一个DLL控件,功能包括字符串操作、文件上传下载、邮件发送、密码生成、字符过滤、加密解密、验证码、cookie和缓存操作等方法,源码包完整编译,Debug目录下是生成的LBC.Utility.dll文件,欢迎下载测试...
代码如下://方法一//须添加对System.Web的引用//using System.Web.Security;/// <summary>/// SHA1加密字符串/// </summary>/// ”source”>源字符串</param>/// 加密后的字符串</returns>public string SHA1(string...
详细讲解了Crypt++的加密解密的使用以及其它的加密解密方法(例如base64加解密、哈希加解密以及其它的文件加解密),分静态库和动态库方法。 JSCalls_demo js调用的演示源码 树控件拖动 演示了在树控件中来回拖动...
详细讲解了Crypt++的加密解密的使用以及其它的加密解密方法(例如base64加解密、哈希加解密以及其它的文件加解密),分静态库和动态库方法。 JSCalls_demo js调用的演示源码 树控件拖动 演示了在树控件中来回拖动...
5.4.5 加密和解密Web.Config文件的配置节 5.4.6 ASP.NET网站管理工具 5.4.7 ASP.NET MMC管理单元 5.5 本章小结 第6章 数据源控件 6.1 SqlDataSource数据源控件 6.2 AccessDataSource数据源控件 6.3 ...
《C#开发实例大全(基础卷)》筛选、汇集了C#开发从基础知识到高级应用各个层面约600个实例及源代码,每个实例都按实例说明、关键技术、设计过程、详尽注释、秘笈心法的顺序进行了分析解读。全书分6篇共25章,主要...
详细讲解了Crypt++的加密解密的使用以及其它的加密解密方法(例如base64加解密、哈希加解密以及其它的文件加解密),分静态库和动态库方法。 JSCalls_demo js调用的演示源码 树控件拖动 演示了在树控件中来回拖动...
详细讲解了Crypt++的加密解密的使用以及其它的加密解密方法(例如base64加解密、哈希加解密以及其它的文件加解密),分静态库和动态库方法。 JSCalls_demo js调用的演示源码 树控件拖动 演示了在树控件中来回拖动...
详细讲解了Crypt++的加密解密的使用以及其它的加密解密方法(例如base64加解密、哈希加解密以及其它的文件加解密),分静态库和动态库方法。 JSCalls_demo js调用的演示源码 树控件拖动 演示了在树控件中来回拖动...
详细讲解了Crypt++的加密解密的使用以及其它的加密解密方法(例如base64加解密、哈希加解密以及其它的文件加解密),分静态库和动态库方法。 JSCalls_demo js调用的演示源码 树控件拖动 演示了在树控件中来回拖动...
因为违反了劳动法(包括但不限定非法裁员,超时用工,雇佣童工等)在任何法律诉讼中败诉的,项目作者有权利追讨本项目的使用费,或者直接替换使用任何包含本项目的源代码!任何性质的外包公司或996公司需要使用本...
一旦使用本开源项目以及引用了本项目或包含本项目代码的公司因为违反劳动法(包括但不限定非法裁员、超时用工、雇佣童工等)在任何法律诉讼中败诉的,项目作者有权利追讨...,或者直接不允许使用任何包含本项目的源代码...
发布Oracle存储过程包c#代码生成工具(CodeRobot) New Folder XCodeFactory3.0完全攻略--序 XCodeFactory3.0完全攻略--基本思想 XCodeFactory3.0完全攻略--简单示例 XCodeFactory3.0完全攻略--IDBAccesser ...