一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

C# MD5加密解密類 winform

 寶貝酷酷 2012-10-26

從網(wǎng)上找到了一些相關(guān)的資料然后自己試著做了一下覺(jué)得收益匪淺。其實(shí)對(duì)MD5的加密解密,我們知道怎么調(diào)用就好了,其實(shí)也沒(méi)有什么太多的必要去看其算法。以下代碼希望對(duì)觀望的讀者有用。

MD5加密解密的兩個(gè)類:

其中的一個(gè)加密解密類:

using System;
using System.Collections.Generic;
using System.Text;
using System.Globalization;
using System.Security.Cryptography;
using System.IO;
namespace WindowsApplication2
{
    class DES
    {
        // 創(chuàng)建Key
        public string GenerateKey()
        {
            DESCryptoServiceProvider desCrypto = (DESCryptoServiceProvider)DESCryptoServiceProvider.Create();
            return ASCIIEncoding.ASCII.GetString(desCrypto.Key);
        }
        ///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());
        }

 

    }
}

另外一個(gè)加密解密類:

using System;
using System.Text;
using System.IO;
using System.Globalization;
using System.Security.Cryptography;
using System.Collections.Generic;

namespace WindowsApplication2
{
    class MD5
    {
        // 創(chuàng)建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);
        }

    }
}

調(diào)用這兩個(gè)類:

public partial class EDForm : Form
    {
        public EDForm()
        {
            InitializeComponent();
        }
        DES des = new DES();
        string key = null;
        /// <summary>
        /// 加密字符串
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button1_Click(object sender, EventArgs e)
        {
            key = des.GenerateKey();
            this.textBox2.Text = des.MD5Encrypt(textBox1.Text,key);
        }

        private void button2_Click(object sender, EventArgs e)
        {
            MessageBox.Show(des.MD5Decrypt(textBox2.Text, key));
        }
    }

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多

    欧美综合色婷婷欧美激情| 国产精品午夜一区二区三区| 日本免费一区二区三女| 国产精品一区日韩欧美| 国产激情一区二区三区不卡| 五月婷婷六月丁香亚洲| 亚洲欧美日本视频一区二区| 亚洲中文字幕免费人妻| 国产丝袜美女诱惑一区二区| 日韩日韩日韩日韩在线| 久久热在线视频免费观看| 亚洲一区二区福利在线| 中文字幕人妻综合一区二区| 高清亚洲精品中文字幕乱码| 亚洲内射人妻一区二区| 欧美成人免费一级特黄| 99久久精品免费看国产高清| 婷婷色香五月综合激激情| 亚洲欧美日韩熟女第一页| 丰满少妇被猛烈撞击在线视频| 丰满人妻少妇精品一区二区三区| 日本午夜免费福利视频 | 中文字幕久久精品亚洲乱码| 日韩午夜老司机免费视频| 日韩不卡一区二区视频| 亚洲国产性感美女视频| 欧美日韩精品综合在线| 国产成人精品资源在线观看| 91欧美一区二区三区| 日韩精品视频一二三区| 最新69国产精品视频| 两性色午夜天堂免费视频| 日本91在线观看视频| 无套内射美女视频免费在线观看| 正在播放玩弄漂亮少妇高潮| 亚洲做性视频在线播放| 国产性色精品福利在线观看| 日韩欧美综合在线播放| 91精品欧美综合在ⅹ| 欧美熟妇一区二区在线| 亚洲欧美日韩国产自拍|