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加密相关推荐

  1. 牛腩44 整合登陆页 RequiredFieldValidator 和 ValidationSummary 以及 asp.net 自带的MD5 加密...

    在我们后台登陆的时候,有 用户名,密码和验证码3个必选项,所以我们托3个验证控件过来 例如这里,如果没有填写用户名,当点提交的时候,显示 红色的  * 号,并且弹出一个 alert 效果如下     ...

  2. 在Ubuntu 14.04 64bit上进行md5加密编程

    计算指定字符串的md5值是一项很常见的操作,包括使用命令行md5sum,或者在C/C++编程中调用openssl提供的接口函数来进行.下面我们分别阐述如下: 一.在命令行中使用md5校验 计算某个文件 ...

  3. js MD5加密处理

    关于MD5: MD5.js是通过前台js加密的方式对用户信息,密码等私密信息进行加密处理的工具,也可称为插件. 在本案例中 可以看到MD5共有6种加密方法: 1,  hex_md5(value) 2, ...

  4. Loadrunner进行md5加密方法

    本文主要介绍使用Loadrunner进行字符串md5加密的方法. 使用Loadrunner进行md5比较简单,首先是加载md5.h头文件,后使用头文件中的加密函数即可. 1. md5.h头文件内容如下 ...

  5. ASP.Net中MD5加密-16位32位

    public string md5(string str,int code) { if(code==16) //16位MD5加密(取32位加密的9~25字符) { return System.Web. ...

  6. C#帮助类:MD5加密

    1 /// <summary> 2 /// MD5加密 3 /// </summary> 4 public class Md5 5 { 6 /// <summary> ...

  7. .net实现md5加密 sha1加密 sha256加密 sha384加密 sha512加密 des加密解密

    写项目时,后台一直用md5加密,一天群里人问,除了MD5还有其它的加密方法吗?当时只知道还有个SHA,但怎么实现什么的都不清楚,于是当网上找了下,把几种常见的加密方法都整理了下,用winform写了个 ...

  8. md5加密用户登陆遇到的问题及解决办法

    有个项目的登陆模块使用到了cas,应需求要求,用户名和密码传输时使用了md5加密模式,加密的密码可以直接保存在数据库,但是加密的用户名则必须解密出来才行,于是后台的java代码中便写了针对用户名的解密 ...

  9. wp7上MD5加密类

    很好的工具类 ,本身wp7 sdk没有自带加密类 using System; using System.Net; using System.Text; using System.Windows; us ...

  10. 修改MD5加密 提高网站安全

    发表文章 修改MD5加密 提高网站安全 2006-08-28 16:23:55 大 中 小 特别说明:此种改变只能用于在刚开始建站时才可,如果你中途改变的话就会出现问题. 也许提到MD5时大家都很熟, ...

最新文章

  1. 标准差、协方差、相关性分别是什么?
  2. 关于一些朋友想做在线教育的回复和分享
  3. python算法书籍-有哪些用 Python 语言讲算法和数据结构的书?
  4. (十二)springmvc+mybatis+dubbo+zookeeper分布式架构 整合 - zookeeper注册中心安装
  5. dw如何写php代码提示,DW CS5 jquery代码提示插件
  6. 《研发企业管理——思想、方法、流程和工具》——1.7 企业研发管理的目的
  7. Keepalived实现双机热备
  8. echarts折线图怎么从y轴开始_基于echarts的双y轴实时更新折线图
  9. vue-cli 搭建的项目处理不同环境下请求不同域名的问题
  10. python资源分配算法_DRL based Resource Allocation Framework
  11. Spring的核心机制依赖注入简介
  12. day3-3.4字符编码与转码
  13. swfupload 实例 php,文件上传之SWFUpload插件(代码)_php实例
  14. pillow 保存图像路径_python利用pillow包处理图片
  15. 多项目管理中PMO的作用
  16. android 数据存储之SQLite
  17. PC端 VUE 官网项目 前端开发 响应式布局(宽+高 等比例缩放)
  18. java redis 通知_Jboot实现Redis操作事件通知
  19. 数据变现四大模式释放电信大数据价值
  20. 计算机多媒体技术英语怎么说,计算机多媒体技术环境中的英语语言测试

热门文章

  1. QGis二次开发:预览几何图形,QgsRubberBand的应用
  2. 该文件没有程序与之关联来执行该操作问题的解决
  3. 物联网与传统的互联网相比,主要具备哪些基本特征?
  4. 【文印技巧】明明选了黑白打印,却印出了棕红色,怎么解决?
  5. [COGS2479]偏序
  6. Cpp多重继承会产生的问题
  7. 某连锁酒店集团实行积分奖励计划,会员每次入住集团旗下酒店均可以获得一定积分,积分由欢迎积分加消费积分构成。其中欢迎积分跟酒店等级有关,具体标准如表2-1所示;消费积分跟每次入住消费金额有关,具体标准为
  8. ggggxc学习笔记---C语言代码I
  9. android Wifi热点启动流程,[android]WIFI热点启动流程分析
  10. 蒙特卡洛与遗传算法介绍