asp.net EncryptHelper 加密帮助类

 更新时间:2010年01月09日 21:56:48   作者:  
EncryptHelper 加密帮助类
复制代码 代码如下:

/**************************************************
* 版权所有: 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;
}
}
}
}

相关文章

  • ASP.NET MVC实现路由功能

    ASP.NET MVC实现路由功能

    这篇文章介绍了ASP.NET MVC实现路由功能的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-08-08
  • ASP.NET封装的SQL数据库访问类

    ASP.NET封装的SQL数据库访问类

    ASP.NET SQL数据库封装访问类代码
    2009-02-02
  • web.config使用方法指南

    web.config使用方法指南

    这篇文章主要介绍了web.config使用方法,具体格式,注意点等方面,有需要的小伙伴可以参考下。
    2015-05-05
  • Asp.net mvc验证用户登录之Forms实现详解

    Asp.net mvc验证用户登录之Forms实现详解

    这篇文章主要为大家详细介绍了Asp.net mvc验证用户登录之Forms实现,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-10-10
  • .NET 操作 PostgreSQL遇到的问题

    .NET 操作 PostgreSQL遇到的问题

    这篇文章主要介绍了.NET 操作 PostgreSQL遇到的问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01
  • 如何实现ListView高效分页代码

    如何实现ListView高效分页代码

    ListView选择自动分页时 其实就是添加了一个DataPager分页控件两者间存在着嵌套关系《Repeater与ListView》中提到这样的分页并不是高效的 因为数据源还是返回了所有的数据 而非当前页数据
    2013-02-02
  • asp.net 获取指定文件夹下所有子目录及文件(树形)

    asp.net 获取指定文件夹下所有子目录及文件(树形)

    asp.net获取指定文件夹下所有子目录及文件,现在有asp.net的站的就是用这样的原理显示文件的
    2008-07-07
  • asp.net中Fine Uploader文件上传组件使用介绍

    asp.net中Fine Uploader文件上传组件使用介绍

    最近在处理后台数据时需要实现文件上传.考虑到对浏览器适配上采用Fine Uploader. Fine Uploader 采用ajax方式实现对文件上传.同时在浏览器中直接支持文件拖拽[对浏览器版本有要求类似IE版本必须是9或是更高的IE10].
    2013-01-01
  • Asp.Net防止刷新重复提交数据的办法

    Asp.Net防止刷新重复提交数据的办法

    最近在用Asp.Net编写点东西时遇到个问题:即用户在提交表单后按刷新就会重复提交数据,即所谓的“刷新重复提交”的问题。
    2013-03-03
  • Asp.NET Core WebApi 配置文件详细说明

    Asp.NET Core WebApi 配置文件详细说明

    ASP.NET Core 提供了一套灵活的配置系统,允许开发者从多种来源加载配置数据,并根据需要使用这些配置,这篇文章主要介绍了Asp.NET Core WebApi 配置文件,需要的朋友可以参考下
    2025-04-04

最新评论