zoukankan      html  css  js  c++  java
  • [转载]MD5加密解密

    MD5加密解密

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

    class Class1
    {
     static void Main()
     {
      Console.WriteLine("Encrypt String...");
      txtKey = "tkGGRmBErvc=";//设置加密Key
      btnKeyGen();
      Console.WriteLine("Encrypt Key :{0}",txtKey);
      txtIV = "Kl7ZgtM1dvQ=";//设置加密IV
      btnIVGen();
      Console.WriteLine("Encrypt IV :{0}",txtIV);
      Console.WriteLine();

      string txtEncrypted = EncryptString("测试");
      Console.WriteLine("Encrypt String : {0}",txtEncrypted);

      string txtOriginal = DecryptString(txtEncrypted);
      Console.WriteLine("Decrypt String : {0}",txtOriginal);
     }

     private static SymmetricAlgorithm mCSP;
     private static string txtKey;
     private static string txtIV;

     private static void btnKeyGen()
     {
      mCSP = SetEnc();

      byte[] byt2 = Convert.FromBase64String(txtKey);

      mCSP.Key = byt2;
     }

     private static void btnIVGen()
     {
      byte[] byt2 = Convert.FromBase64String(txtIV);

      mCSP.IV = byt2;
     }

     private static string EncryptString(string Value)
     {
      ICryptoTransform ct;
      MemoryStream ms;
      CryptoStream cs;
      byte[] byt;

      ct = mCSP.CreateEncryptor(mCSP.Key, mCSP.IV);

      byt = Encoding.UTF8.GetBytes(Value);

      ms = new MemoryStream();
      cs = new CryptoStream(ms, ct, CryptoStreamMode.Write);
      cs.Write(byt, 0, byt.Length);
      cs.FlushFinalBlock();
     
      cs.Close();

      return Convert.ToBase64String(ms.ToArray());
     }

     private static string DecryptString(string Value)
     {
      ICryptoTransform ct;
      MemoryStream ms;
      CryptoStream cs;
      byte[] byt;

      ct = mCSP.CreateDecryptor(mCSP.Key, mCSP.IV);

      byt = Convert.FromBase64String(Value);

      ms = new MemoryStream();
      cs = new CryptoStream(ms, ct, CryptoStreamMode.Write);
      cs.Write(byt, 0, byt.Length);
      cs.FlushFinalBlock();

      cs.Close();

      return Encoding.UTF8.GetString(ms.ToArray());
     }

     private static SymmetricAlgorithm SetEnc()
     {
      return new DESCryptoServiceProvider();
     }
    }

  • 相关阅读:
    IT战略规划项目方法论(转)
    008_Node中的require和import
    007_Mac上安装Node和NPM
    005_讨论多线程和单线程
    006_饿了么大前端总监sofish帮你理清前端工程师及大前端团队的成长问题!
    005_解密饿了么大前端团队
    005_python对整数的拼接
    010_动态语言与鸭子类型及python2和3的区别
    010_vim和python整合开发
    009_一行python重要工具
  • 原文地址:https://www.cnblogs.com/chorrysky/p/897369.html
Copyright © 2011-2022 走看看