MD5加密解密

using System.Security.Cryptography;
using    System.IO;
using    System.Text; 

///MD5加密
  public string MD5Encrypt(string    pToEncrypt,  string    sKey)
    {
     DESCryptoServiceProvider    des  =  new    DESCryptoServiceProvider();
   byte[]    inputByteArray  =    Encoding.Default.GetBytes(pToEncrypt);
     des.Key  =    ASCIIEncoding.ASCII.GetBytes(sKey);
     des.IV  =    ASCIIEncoding.ASCII.GetBytes(sKey);
     MemoryStream    ms  =  new    MemoryStream();
     CryptoStream    cs  =  new    CryptoStream(ms,    des.CreateEncryptor(),CryptoStreamMode.Write);
     cs.Write(inputByteArray,  0,    inputByteArray.Length);
     cs.FlushFinalBlock();
     StringBuilder    ret  =  new    StringBuilder();
   foreach(byte    b  in    ms.ToArray())
     {
      ret.AppendFormat("{0:X2}",    b);
     }
     ret.ToString();
   return    ret.ToString();  

    }

  ///MD5解密
  public string MD5Decrypt(string    pToDecrypt,  string    sKey)
    {
     DESCryptoServiceProvider    des  =  new    DESCryptoServiceProvider();  

   byte[]    inputByteArray  =  new  byte[pToDecrypt.Length  /  2];
   for(int    x  =  0;    x  <    pToDecrypt.Length  /  2;    x++)
     {
    int    i  =    (Convert.ToInt32(pToDecrypt.Substring(x  *  2,  2),  16));
      inputByteArray[x]  =    (byte)i;
     }  

     des.Key  =    ASCIIEncoding.ASCII.GetBytes(sKey);
     des.IV  =    ASCIIEncoding.ASCII.GetBytes(sKey);
     MemoryStream    ms  =  new    MemoryStream();
     CryptoStream    cs  =  new    CryptoStream(ms,    des.CreateDecryptor(),CryptoStreamMode.Write);
     cs.Write(inputByteArray,  0,    inputByteArray.Length);
     cs.FlushFinalBlock();  

     StringBuilder    ret  =  new    StringBuilder();  

   return    System.Text.Encoding.Default.GetString(ms.ToArray());
    }

-------------------------------------------------------------------------------

using System;
using System.Text;
using System.Globalization;
using System.Security.Cryptography;
class DES
{
// 创建Key
public string GenerateKey()
{
DESCryptoServiceProvider desCrypto = (DESCryptoServiceProvider)DESCryptoServiceProvider.Create();
return ASCIIEncoding.ASCII.GetString(desCrypto.Key);
}
// 加密字符串
public string EncryptString(string sInputString, string sKey)
{
byte [] data = Encoding.UTF8.GetBytes(sInputString);
DESCryptoServiceProvider DES = new DESCryptoServiceProvider();
DES.Key = ASCIIEncoding.ASCII.GetBytes(sKey);
DES.IV = ASCIIEncoding.ASCII.GetBytes(sKey);
ICryptoTransform desencrypt = DES.CreateEncryptor();
byte [] result = desencrypt.TransformFinalBlock(data, 0, data.Length);
return BitConverter.ToString(result);
}
// 解密字符串
public string DecryptString(string sInputString, string sKey)
{
string [] sInput = sInputString.Split("-".ToCharArray());
byte [] data = new byte[sInput.Length];
for(int i = 0; i < sInput.Length; i++)
{
data[i] = byte.Parse(sInput[i], NumberStyles.HexNumber);
}
DESCryptoServiceProvider DES = new DESCryptoServiceProvider();
DES.Key = ASCIIEncoding.ASCII.GetBytes(sKey);
DES.IV = ASCIIEncoding.ASCII.GetBytes(sKey);
ICryptoTransform desencrypt = DES.CreateDecryptor();
byte [] result = desencrypt.TransformFinalBlock(data, 0, data.Length);
return Encoding.UTF8.GetString(result);
}
}
class Test
{
static void Main()
{
DES des = new DES();
string key = des.GenerateKey();
string s0 = "中国软件 - csdn.net";
string s1 = des.EncryptString(s0, key);
string s2 = des.DecryptString(s1, key);
Console.WriteLine("原串: [{0}]", s0);
Console.WriteLine("加密: [{0}]", s1);
Console.WriteLine("解密: [{0}]", s2);
}
}
/* 程序输出:
原串: [中国软件 - csdn.net]
加密: [E8-30-D0-F2-2F-66-52-14-45-9A-DC-C5-85-E7-62-9B-AD-B7-82-CF-A8-0A-59-77]
解密: [中国软件 - csdn.net]
*/

  

时间: 2024-12-16 15:50:29

MD5加密解密的相关文章

java 采用MD5加密解密

MD5加密解密 package endecrypt; import java.io.UnsupportedEncodingException; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; /** * 采用MD5加密解密 * @author tfq * @datetime 2011-10-13 */ public class MD5Util { /*** * MD5加码 生成3

MD5加密解密帮助类

using System; using System.Security.Cryptography; using System.Text; namespace Maticsoft.DBUtility { /// <summary> /// DES加密/解密类. /// </summary> public class DESEncrypt { public DESEncrypt() { } #region ========加密======== /// <summary> /

.NET MD5加密解密代码

MD5简介: 是让大容量信息在用数字签名软件签署私人密匙前被"压缩"成一种保密的格式(就是把一个任意长度的字节串变换成一定长的大整数).不管是MD2.MD4还是MD5,它们都需要获得一个随机长度的信息并产生一个128位的信息摘要.虽然这些算法的结构或多或少有些相似,但MD2的设计与MD4和MD5完全不同,那是因为MD2是为8位机器做过设计优化的,而MD4和MD5却是面向32位的电脑.这三个算法的描述和C语言源代码在Internet RFCs 1321中有详细的描述,这是一份最权威的文档

C#,ASP.NET简单的MD5加密,解密

简单的MD5加密 首先要有一个加解密的规则  就是key 代码如下 // 创建Key public string GenerateKey() { DESCryptoServiceProvider desCrypto = (DESCryptoServiceProvider)DESCryptoServiceProvider.Create(); return ASCIIEncoding.ASCII.GetString(desCrypto.Key); } 然后就是加密 传入的参数分别为你要加密的字符串,

VB使用API进行MD5加密解密

根据网络资料整改,来源未知,已调试通过. Option Explicit Private Declare Function CryptAcquireContext Lib "advapi32.dll" _ Alias "CryptAcquireContextA" ( _ ByRef phProv As Long, _ ByVal pszContainer As String, _ ByVal pszProvider As String, _ ByVal dwProv

MD5加密解密类(asp.net)&amp;使用MD5过时处理

加密类 #region ========加密======== /// <summary> /// 加密 /// </summary> /// <param name="Text"></param> /// <returns></returns> public static string Encrypt(string Text) { return Encrypt(Text, "cong"); }

MD5加密解密在.NET平台实现那些事

MD5作为一种散列算法,广泛用于密码传输过程中的加密过程.MD顾名思义Message Digest(报文摘要),可以将输入的密码,一般来说为一个字符串,加密成密文,并且这种加密是单向的.唯一的,理论上说是不能解密的,当然个别网站通过搜集大家简单的字符串输入形成所谓的“数据字典”,然后根据大家习惯,形成明文,这个其实就是统计形成的结果,通过比对实现,与MD5算法的理论基础没有太大的关系.最近几年,山东一个高校的女博士也在研究MD5算法的解密,并且通过一些算法可以求解密文的明文,但仅仅局限于简单的字

MD5加密解密类

public class CrytMd5    {        private static string symmetricKey = "2fSA4Gd3czxzmsel5kgEs6dXj6h4vA6y";    //对称加密密钥        private static string symmetricIV = "he86rTcIvr12CiwN";    //对称加密初始向量 /// <summary>        /// 设置密钥,只写  

Jquery Md5加密解密

首先需要调用md5解析的js文件.(右击-目标另存为方式下载) http://files.cnblogs.com/files/colinliu/md5.js 加密方法参考: var pwd = hex_md5($("#userpwd").val()); alert(pwd);