c# MD5加密
using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Cryptography;
using System.Text;
using System.Threading.Tasks;
/******************************
* 概要:MD5加密
* 设计者:DuanXuWen
* 时间:20180309
* 版本:0.1
* 修改者:
* 修改时间:
* ***************************/
namespace Common
{
public class EncrypHelper
{
/// <summary>
///静态无参构造
/// </summary>
static EncrypHelper()
{
//默认的密钥
SecretKey = "HelloWorld..!!";
}
/// <summary>
/// 使用SHA256加密字符串
/// </summary>
/// <param name="Source"></param>
/// <returns></returns>
public static string EncrypToSHA(string Source)
{
SHA256Managed sha256 = new SHA256Managed();
byte[] s = UTF8Encoding.UTF8.GetBytes(Source);
byte[] t = sha256.ComputeHash(s);
return Convert.ToBase64String(t);
}
/// <summary>
/// MD5加密(32位)
/// </summary>
/// <param name="str">加密字符</param>
/// <returns></returns>
public static string encrypt(string str)
{
string cl = str;
string pwd = "";
MD5 md5 = MD5.Create();
byte[] s = md5.ComputeHash(Encoding.UTF8.GetBytes(cl));
for (int i = 0; i < s.Length; i++)
{
pwd = pwd + s[i].ToString("X");
}
return pwd;
}
/// <summary>
/// 缺省的密钥
/// </summary>
public static readonly string SecretKey;
/// <summary>
/// 使用缺省密钥字符串加密string
/// </summary>
/// <param name="original">明文</param>
/// <returns>密文</returns>
public static string Encrypt(string original)
{
return Encrypt(original, SecretKey);
}
/// <summary>
/// 使用缺省密钥字符串解密string
/// </summary>
/// <param name="original">密文</param>
/// <returns>明文</returns>
public static string Decrypt(string original)
{
return Decrypt(original, SecretKey, System.Text.Encoding.Default);
}
/// <summary>
/// 使用给定密钥字符串加密string
/// </summary>
/// <param name="original">原始文字</param>
/// <param name="key">密钥</param>
/// <returns>密文</returns>
public static string Encrypt(string original, string key)
{
byte[] buff = System.Text.Encoding.Default.GetBytes(original);
byte[] kb = System.Text.Encoding.Default.GetBytes(key);
return Convert.ToBase64String(Encrypt(buff, kb));
}
/// <summary>
/// 使用给定密钥字符串解密string
/// </summary>
/// <param name="original">密文</param>
/// <param name="key">密钥</param>
/// <returns>明文</returns>
public static string Decrypt(string original, string key)
{
return Decrypt(original, key, System.Text.Encoding.Default);
}
/// <summary>
/// 使用给定密钥字符串解密string,返回指定编码方式明文
/// </summary>
/// <param name="encrypted">密文</param>
/// <param name="key">密钥</param>
/// <param name="encoding">字符编码方案</param>
/// <returns>明文</returns>
public static string Decrypt(string encrypted, string key, Encoding encoding)
{
byte[] buff = Convert.FromBase64String(encrypted);
byte[] kb = System.Text.Encoding.Default.GetBytes(key);
return encoding.GetString(Decrypt(buff, kb));
}
/// <summary>
/// 生成MD5摘要
/// </summary>
/// <param name="original">数据源</param>
/// <returns>摘要</returns>
public static byte[] MakeMd5(byte[] original)
{
MD5CryptoServiceProvider hashmd5 = new MD5CryptoServiceProvider();
byte[] keyhash = hashmd5.ComputeHash(original);
hashmd5 = null;
return keyhash;
}
/// <summary>
/// 使用给定密钥加密
/// </summary>
/// <param name="original">明文</param>
/// <param name="key">密钥</param>
/// <returns>密文</returns>
public static byte[] Encrypt(byte[] original, byte[] key)
{
TripleDESCryptoServiceProvider des = new TripleDESCryptoServiceProvider();
des.Key = MakeMd5(key);
des.Mode = CipherMode.ECB;
return des.CreateEncryptor().TransformFinalBlock(original, 0, original.Length);
}
/// <summary>
/// 使用给定密钥解密数据
/// </summary>
/// <param name="encrypted">密文</param>
/// <param name="key">密钥</param>
/// <returns>明文</returns>
public static byte[] Decrypt(byte[] encrypted, byte[] key)
{
TripleDESCryptoServiceProvider des = new TripleDESCryptoServiceProvider();
des.Key = MakeMd5(key);
des.Mode = CipherMode.ECB;
return des.CreateDecryptor().TransformFinalBlock(encrypted, 0, encrypted.Length);
}
}
}
c# MD5加密相关推荐
- 牛腩44 整合登陆页 RequiredFieldValidator 和 ValidationSummary 以及 asp.net 自带的MD5 加密...
在我们后台登陆的时候,有 用户名,密码和验证码3个必选项,所以我们托3个验证控件过来 例如这里,如果没有填写用户名,当点提交的时候,显示 红色的 * 号,并且弹出一个 alert 效果如下 ...
- 在Ubuntu 14.04 64bit上进行md5加密编程
计算指定字符串的md5值是一项很常见的操作,包括使用命令行md5sum,或者在C/C++编程中调用openssl提供的接口函数来进行.下面我们分别阐述如下: 一.在命令行中使用md5校验 计算某个文件 ...
- js MD5加密处理
关于MD5: MD5.js是通过前台js加密的方式对用户信息,密码等私密信息进行加密处理的工具,也可称为插件. 在本案例中 可以看到MD5共有6种加密方法: 1, hex_md5(value) 2, ...
- Loadrunner进行md5加密方法
本文主要介绍使用Loadrunner进行字符串md5加密的方法. 使用Loadrunner进行md5比较简单,首先是加载md5.h头文件,后使用头文件中的加密函数即可. 1. md5.h头文件内容如下 ...
- ASP.Net中MD5加密-16位32位
public string md5(string str,int code) { if(code==16) //16位MD5加密(取32位加密的9~25字符) { return System.Web. ...
- C#帮助类:MD5加密
1 /// <summary> 2 /// MD5加密 3 /// </summary> 4 public class Md5 5 { 6 /// <summary> ...
- .net实现md5加密 sha1加密 sha256加密 sha384加密 sha512加密 des加密解密
写项目时,后台一直用md5加密,一天群里人问,除了MD5还有其它的加密方法吗?当时只知道还有个SHA,但怎么实现什么的都不清楚,于是当网上找了下,把几种常见的加密方法都整理了下,用winform写了个 ...
- md5加密用户登陆遇到的问题及解决办法
有个项目的登陆模块使用到了cas,应需求要求,用户名和密码传输时使用了md5加密模式,加密的密码可以直接保存在数据库,但是加密的用户名则必须解密出来才行,于是后台的java代码中便写了针对用户名的解密 ...
- wp7上MD5加密类
很好的工具类 ,本身wp7 sdk没有自带加密类 using System; using System.Net; using System.Text; using System.Windows; us ...
- 修改MD5加密 提高网站安全
发表文章 修改MD5加密 提高网站安全 2006-08-28 16:23:55 大 中 小 特别说明:此种改变只能用于在刚开始建站时才可,如果你中途改变的话就会出现问题. 也许提到MD5时大家都很熟, ...
最新文章
- 标准差、协方差、相关性分别是什么?
- 关于一些朋友想做在线教育的回复和分享
- python算法书籍-有哪些用 Python 语言讲算法和数据结构的书?
- (十二)springmvc+mybatis+dubbo+zookeeper分布式架构 整合 - zookeeper注册中心安装
- dw如何写php代码提示,DW CS5 jquery代码提示插件
- 《研发企业管理——思想、方法、流程和工具》——1.7 企业研发管理的目的
- Keepalived实现双机热备
- echarts折线图怎么从y轴开始_基于echarts的双y轴实时更新折线图
- vue-cli 搭建的项目处理不同环境下请求不同域名的问题
- python资源分配算法_DRL based Resource Allocation Framework
- Spring的核心机制依赖注入简介
- day3-3.4字符编码与转码
- swfupload 实例 php,文件上传之SWFUpload插件(代码)_php实例
- pillow 保存图像路径_python利用pillow包处理图片
- 多项目管理中PMO的作用
- android 数据存储之SQLite
- PC端 VUE 官网项目 前端开发 响应式布局(宽+高 等比例缩放)
- java redis 通知_Jboot实现Redis操作事件通知
- 数据变现四大模式释放电信大数据价值
- 计算机多媒体技术英语怎么说,计算机多媒体技术环境中的英语语言测试
热门文章
- QGis二次开发:预览几何图形,QgsRubberBand的应用
- 该文件没有程序与之关联来执行该操作问题的解决
- 物联网与传统的互联网相比,主要具备哪些基本特征?
- 【文印技巧】明明选了黑白打印,却印出了棕红色,怎么解决?
- [COGS2479]偏序
- Cpp多重继承会产生的问题
- 某连锁酒店集团实行积分奖励计划,会员每次入住集团旗下酒店均可以获得一定积分,积分由欢迎积分加消费积分构成。其中欢迎积分跟酒店等级有关,具体标准如表2-1所示;消费积分跟每次入住消费金额有关,具体标准为
- ggggxc学习笔记---C语言代码I
- android Wifi热点启动流程,[android]WIFI热点启动流程分析
- 蒙特卡洛与遗传算法介绍