MD5加密

原创 2017年06月25日 13:01:11
引用:
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Security.Cryptography;
using System.Text;

public class MD5
    {
        private static string _key = "加密密钥";
        private static string _iv = "解密密钥";

        /// <summary>
        /// MD5加密
        /// </summary>
        /// <param name="realMsg">需加密的明文</param>
        /// <param name="key">加密标准算法的机密密钥</param>
        /// <param name="iv">对称算法的初始化向量</param>
        /// <returns>加密后密码的16进制表示</returns>
        public static string MD5Encrypt(string realMsg)
        {
            string key = _key;
            string iv = _iv;
            string sKey = key.PadLeft(8, '0');
            string sIV = iv.PadLeft(8, '0');
            DESCryptoServiceProvider des = new DESCryptoServiceProvider();
            byte[] inputByteArray = Encoding.Default.GetBytes(realMsg);
            des.Key = ASCIIEncoding.ASCII.GetBytes(sKey.Substring(0, 8));
            des.IV = ASCIIEncoding.ASCII.GetBytes(sIV.Substring(0, 8));
            MemoryStream ms = new MemoryStream();
            CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write);
            cs.Write(inputByteArray, 0, inputByteArray.Length);
            try
            {
                cs.FlushFinalBlock();
            }
            catch //(Exception err)
            {
                return realMsg;
            }
            StringBuilder ret = new StringBuilder();
            foreach (byte b in ms.ToArray())
            {
                ret.AppendFormat("{0:X2}", b);
            }
            ret.ToString();
            return ret.ToString();
        }

        /// <summary>
        /// MD5解密,对MD5Encrypt的加密内容进行解密
        /// </summary>
        /// <param name="encryptedMsg">已经加密的密码密文</param>
        /// <param name="key">加密标准算法的机密密钥</param>
        /// <param name="iv">对称算法的初始化向量</param>
        /// <returns></returns>
        public static string MD5Decrypt(string encryptedMsg)
        {
            string key = _key;
            string iv = _iv;
            string sKey = key.PadLeft(8, '0');
            string sVI = iv.PadLeft(8, '0');
            DESCryptoServiceProvider des = new DESCryptoServiceProvider();
            byte[] inputByteArray = new byte[encryptedMsg.Length / 2];
            for (int x = 0; x < encryptedMsg.Length / 2; x++)
            {
                int i = Convert.ToInt32(encryptedMsg.Substring(x * 2, 2), 16);
                inputByteArray[x] = (byte)i;
            }
            des.Key = ASCIIEncoding.ASCII.GetBytes(sKey.Substring(0, 8));
            des.IV = ASCIIEncoding.ASCII.GetBytes(sVI.Substring(0, 8));
            MemoryStream ms = new MemoryStream();
            CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Write);
            cs.Write(inputByteArray, 0, inputByteArray.Length);
            try
            {
                cs.FlushFinalBlock();
            }
            catch//(Exception err)
            {
                return encryptedMsg;
            }
            StringBuilder ret = new StringBuilder();
            return System.Text.Encoding.Default.GetString(ms.ToArray());
        } 
    }
版权声明:本文为博主原创文章,未经博主允许不得转载。

html中使用js进行登录md5加密提交并重定向新页面

在web开发中有时需要将用户的一些信息在客户端加密后进行提交,然后在web后端进行验证,可以提高页面传输过程中的安全性。本例实现一个简单的加密登录demo,例子仅仅为了演示使用,实际使用时可以根据实际...
  • yxtouch
  • yxtouch
  • 2015年10月30日 10:22
  • 7599

jQuery实现MD5加密

1、问题背景 有两个输入框,一个输入明文,另一个输入框显示密文 2、实现源码 [html] view plain copy ⃕ print? ...

超级完美JS 加密 AJAX客户端隐藏

你是否还在为 js被客户查看烦恼, AJAX 放在客户端的 js 让人一目了然? 赶紧来看下我的 完美JS加密 ! 实际不是加密 是伪装 但是目的一样的吗~ 网上找了很大 js加密 但是 每...
  • tao2581
  • tao2581
  • 2010年10月13日 15:05
  • 6853

Ajax密文传输数据

AJAX还是比较强大的!(显然,这是一句废话),最近在研究一个网站的AJAX应用中发现其中的“拓展视野”部分频频被挖掘出来(也由此可见,平时本人的视野有多么的狭窄了),首先是全站的JS全部使用pack...
  • Sychel
  • Sychel
  • 2015年11月11日 09:50
  • 2395

ajax开发:基于 Token 的身份验证

最近了解下基于 Token 的身份验证,跟大伙分享下。很多大型网站也都在用,比如 Facebook,Twitter,Google+,Github 等等,比起传统的身份验证方法,Token 扩展性更强,...
  • Generon
  • Generon
  • 2017年05月18日 09:48
  • 2207

登录功能(MD5加密)

登录这个功能,是不管哪个项目都会用到的,登录做的好坏,安全性的保障将直接影响到整个系统的成败,尤其是一些安全性要求比较严格的项目,下面跟我一起来看一下这里是怎么做的 首先需要对密码进行加密,这里用到的...

java中字符串 MD5密码的加密与验证

java中字符串 MD5密码的加密与验证   MD5即Message-Digest Algorithm 5(信息-摘要算法 5),用于确保信息传输完整一致。是计算机广泛使用的杂凑算法之一(又译摘要算...
  • lvyuanj
  • lvyuanj
  • 2014年05月24日 19:26
  • 3680

VC写的MD5加密DEMO

  • 2017年11月27日 14:14
  • 1.95MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:MD5加密
举报原因:
原因补充:

(最多只允许输入30个字)