欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

asp.net EncryptHelper 加密帮助类

程序员文章站 2024-03-08 13:02:22
复制代码 代码如下:/************************************************** * 版权所有: mr_sheng * 文 件 名...
复制代码 代码如下:

/**************************************************
* 版权所有: mr_sheng
* 文 件 名: encrypthelper.cs
* 文件描述:
* 类型说明: encrypthelper 加密帮助类
* 授权声明:
* 本程序为*软件;
* 您可依据*软件基金会所发表的gpl v3授权条款,对本程序再次发布和/或修改;
* 本程序是基于使用目的而加以发布,然而不负任何担保责任;
* 亦无对适售性或特定目的适用性所为的默示性担保。
* 详情请参照gnu通用公共授权 v3(参见license.txt文件)。
* 版本历史:
* v2.0.0 mr_sheng 2009-09-09 修改
*
***************************************************/
using system;
using system.collections.generic;
using system.text;
using system.security.cryptography;

namespace sheng.common
{
/// <summary>
/// 加密帮助类
/// </summary>
public class encrypthelper
{
/// <summary>
/// md5加密
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static string md5decryptstring(string str)
{
md5cryptoserviceprovider md5 = new md5cryptoserviceprovider();
byte[] md5source = system.text.encoding.utf8.getbytes(str);
byte[] md5out = md5.computehash(md5source);
return convert.tobase64string(md5out);
}

/// <summary>
/// des加密字符串
/// </summary>
/// <param name="sinputstring">输入字符</param>
/// <param name="skey">key</param>
/// <returns>加密结果</returns>
public string desencryptstring(string sinputstring, string skey)
{
try
{
byte[] data = encoding.default.getbytes(sinputstring);
byte[] result;
descryptoserviceprovider des = new descryptoserviceprovider();
des.key = asciiencoding.ascii.getbytes(skey); //密钥
des.iv = asciiencoding.ascii.getbytes(skey); //初始化向量
icryptotransform desencrypt = des.createencryptor(); //加密器对象
result = desencrypt.transformfinalblock(data, 0, data.length); //转换指定字节数组的指定区域
return bitconverter.tostring(result);
}
catch (exception ex)
{
//ex.message = "des加密异常";
throw ex;
}
}

/// <summary>
/// des解密字符串
/// </summary>
/// <param name="sinputstring">输入字符</param>
/// <param name="skey">key</param>
/// <returns>解密结果</returns>
public string desdecryptstring(string sinputstring, string skey)
{
try
{
//将字符串转换为字节数组
string[] sinput = sinputstring.split("-".tochararray());
byte[] data = new byte[sinput.length];
byte[] result;
for (int i = 0; i < sinput.length; i++)
{
data[i] = byte.parse(sinput[i], system.globalization.numberstyles.hexnumber);
}

descryptoserviceprovider des = new descryptoserviceprovider();
des.key = asciiencoding.ascii.getbytes(skey);
des.iv = asciiencoding.ascii.getbytes(skey);
icryptotransform desencrypt = des.createdecryptor();
result = desencrypt.transformfinalblock(data, 0, data.length);
return encoding.default.getstring(result);
}
catch (exception ex)
{
//ex.message = "des解密异常";
throw ex;
}
}
}
}