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());
        } 
    }
版权声明:本文为博主原创文章,未经博主允许不得转载。

使用MD5对用户密码加密与解密

MD5简介:           MD5的全称是Message-Digest Algorithm 5,在90年代初由MIT的计算机科学实验室和RSA Data Security Inc发明,经MD2...
  • e295166319
  • e295166319
  • 2016年12月12日 17:29
  • 3178

MD5加密的一些记录

MD5加密是通常使用的加密方式,MD5加密其实很简单,传过去参数,然后就返回了一串加密过后的md5字符串. 刚开始的时候通常简单加密方式就是传入密码->通过MD5加密->返回字符串->存入数据库.就...
  • u010731805
  • u010731805
  • 2016年06月12日 10:37
  • 345

浅谈MD5加密,真的安全么?

从接触android开始就一直被灌输一个思想,MD5加密无法解密,是很安全的。并且实际情况也是很多http请求用的都是MD5加密。 从技术的角度讲,MD5真的很安全,因为无法解密,破解MD5的方式只...
  • sunxiaogang0214
  • sunxiaogang0214
  • 2016年11月28日 17:17
  • 1767

在ASP.NET中进行MD5加密。

在ASP.NET中MD5的加密方式很简单,代码如下: FormsAuthentication.HashPasswordForStoringInConfigFile(str, "MD5").ToLow...
  • D_Altman
  • D_Altman
  • 2017年05月17日 11:03
  • 1107

MD5 加密算法详细介绍

MD5是什么 message-digest algorithm 5(信息-摘要算法)。经常说的“MD5加密”,就是它→信息-摘要算法。 在下载一下东西时,经常在一些压缩包属性里,看到md5...
  • ling_du
  • ling_du
  • 2016年05月19日 11:01
  • 9960

浅谈md5加密

md5加密是我们生活中十分常见的加密算法。 我是最近在写一个H5 的项目时接触到的这个算法,这个算法极大的引起了我的好奇心,是登陆界面,要求是将用户输入的密码使用md5加密之后,再传回服务器,当时我十...
  • qq_32635069
  • qq_32635069
  • 2017年06月04日 17:04
  • 1793

"MD5"加密算法全解析

一."信息摘要对象"通过单例获取:md5 字符串: 1.获取字符串的字节数组 2.md5对字节数组获取"摘要字节数组" 文件: 1.获取文件的读取流 2.对文件读取流读取进字节数组,逐个更新读取到的数...
  • nzfxx
  • nzfxx
  • 2016年07月01日 20:56
  • 6276

MD5加密的简单java实现

MD5加密
  • liu1782291245
  • liu1782291245
  • 2017年06月19日 14:24
  • 15920

Java最简洁加密32位MD5

使用java生成32位字符串的MD5:public static String getMD5(String str) { try { // 生成一个MD5加密计...
  • wildpal
  • wildpal
  • 2016年11月29日 17:28
  • 4748

Android-常用工具类-MD5加密

代码package com.che.carcheck.support.util;import java.security.MessageDigest;/** * MD5加密工具类 * * 作者...
  • Fisher0113
  • Fisher0113
  • 2016年05月10日 14:06
  • 11421
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:MD5加密
举报原因:
原因补充:

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