亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mac.cs

?? C#的Mac驗證碼算法用于遠程交互數據驗證數據的有效性
?? CS
字號:
using System;
using System.Collections.Generic;
using System.Text;
using System.Security;
using System.Security.Cryptography;
using System.IO;
using System.Runtime.InteropServices;

namespace WintecLib
{
    public class Mac
    {
        //MD5不可逆加密
        public static string Md5(string strPassword)
        {
            MD5CryptoServiceProvider hashmd5;
            hashmd5 = new MD5CryptoServiceProvider();
            return BitConverter.ToString(hashmd5.ComputeHash(Encoding.Default.GetBytes(strPassword))).Replace("-", "").ToLower();
        }
        
        /// <summary>
        /// DES解密
        /// </summary>
        /// <param name="Key">密鑰</param>
        /// <param name="Data">數據</param>
        /// <returns>解密后的數據</returns>
        public static byte[] DESDecrypt(byte[] Key, byte[] Data)
        {

            try
            {
                DESCryptoServiceProvider MyServiceProvider = new DESCryptoServiceProvider();

                //計算des加密所采用的算法

                MyServiceProvider.Mode = CipherMode.CBC;

                //計算填充類型
                MyServiceProvider.Padding = PaddingMode.Zeros;

                ICryptoTransform MyTransform = MyServiceProvider.CreateDecryptor(Key, new byte[8] { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 });
                //CryptoStream對象的作用是將數據流連接到加密轉換的流
                MemoryStream ms = new MemoryStream();
                CryptoStream MyCryptoStream = new CryptoStream(ms, MyTransform, CryptoStreamMode.Write);
                //將字節數組中的數據寫入到加密流中
                MyCryptoStream.Write(Data, 0, Data.Length);
                MyCryptoStream.FlushFinalBlock();
                MyCryptoStream.Close();
                byte[] byEncRet = ms.ToArray();
                ms.Close();
                return byEncRet;
            }
            catch (Exception ex)
            {
                Console.WriteLine("Exception caught: {0}", ex.Message);
                return new byte[8];
            }



        }
        /// <summary>
        /// DES加密
        /// </summary>
        /// <param name="Key">密鑰</param>
        /// <param name="Data">數據</param>
        /// <returns>加密后的數據</returns>
        public static byte[] DESEncrypt(byte[] Key, byte[] Data)
        {

            try
            {
                DESCryptoServiceProvider MyServiceProvider = new DESCryptoServiceProvider();

                //計算des加密所采用的算法

                MyServiceProvider.Mode = CipherMode.CBC;

                //計算填充類型
                MyServiceProvider.Padding = PaddingMode.Zeros;

                ICryptoTransform MyTransform = MyServiceProvider.CreateEncryptor(Key, new byte[8] { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 });
                //CryptoStream對象的作用是將數據流連接到加密轉換的流
                MemoryStream ms = new MemoryStream();
                CryptoStream MyCryptoStream = new CryptoStream(ms, MyTransform, CryptoStreamMode.Write);
                //將字節數組中的數據寫入到加密流中
                MyCryptoStream.Write(Data, 0, Data.Length);
                MyCryptoStream.FlushFinalBlock();
                MyCryptoStream.Close();
                byte[] byEncRet = ms.ToArray();
                ms.Close();
                return byEncRet;
            }
            catch (Exception ex)
            {
                Console.WriteLine("Exception caught: {0}", ex.Message);
                return new byte[8];
            }
        }

      



        /// <summary>
        /// 對異或后的8位數據進行加密,位數不足8位補0x0
        /// </summary>
        /// <param name="Key">密鑰</param>
        /// <param name="Data">數據</param>
        /// <returns>加密后的數據</returns>
        public static byte[] HCDES(byte[] Key, byte[] Data)
        {
            try
            {
                //創建一個DES算法的加密類
                DESCryptoServiceProvider MyServiceProvider = new DESCryptoServiceProvider();
                MyServiceProvider.Mode = CipherMode.CBC;
                MyServiceProvider.Padding = PaddingMode.None;
                //從DES算法的加密類對象的CreateEncryptor方法,創建一個加密轉換接口對象
                //第一個參數的含義是:對稱算法的機密密鑰(長度為64位,也就是8個字節)
                // 可以人工輸入,也可以隨機生成方法是:MyServiceProvider.GenerateKey();
                //第二個參數的含義是:對稱算法的初始化向量(長度為64位,也就是8個字節)
                // 可以人工輸入,也可以隨機生成方法是:MyServiceProvider.GenerateIV()

                //
                ICryptoTransform MyTransform = MyServiceProvider.CreateEncryptor(Key,Key);// new byte[8] { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 });

                //CryptoStream對象的作用是將數據流連接到加密轉換的流
                MemoryStream ms = new MemoryStream();
                CryptoStream MyCryptoStream = new CryptoStream(ms, MyTransform, CryptoStreamMode.Write);
                //將字節數組中的數據寫入到加密流中


                MyCryptoStream.Write(Data, 0, Data.Length);
                //關閉加密流對象
                byte[] bEncRet = new byte[8];
                // Array.Copy(ms.GetBuffer(), bEncRet, ms.Length);
                bEncRet = ms.ToArray(); // MyCryptoStream關閉之前ms.Length 為8, 關閉之后為16

                MyCryptoStream.FlushFinalBlock();
                MyCryptoStream.Close();
                byte[] bTmp = ms.ToArray();
                ms.Close();


                // return bEncRet;
                return bTmp;// 
            }
            catch (Exception ex)
            {
                Console.WriteLine("HCDES Exception Caught, Exception = {0}", ex.Message);
                return new byte[8];
            }

        }


        /// <summary>
        /// Mac驗證碼的數據生成講數據分為8位1組進行異或后加密
        /// </summary>
        /// <param name="key">密鑰</param>
        /// <param name="MacData">數據</param>
        /// <returns>加密后的Mac驗證碼</returns>
        public static byte[] MAC_CBC(byte[] key,byte[] MacData)
        {
            int count = 0;
            if (MacData.Length % 8 != 0)
            {
                count = 8 - (MacData.Length % 8);

            }

            byte[] tmpData = new byte[count];
            for (int index = 0; index < tmpData.Length; index++)
            {
                tmpData[index] = new byte[] { 0 }[0x30];
            }
            byte[] newMacData = new byte[MacData.Length + tmpData.Length];
            Array.Copy(MacData, 0, newMacData, 0, MacData.Length);
            Array.Copy(tmpData, 0, newMacData, MacData.Length, tmpData.Length);
            
            byte[] bKey=new byte[8];
           
            bKey=key;

            try
            {
                int iGroup = 0;

                byte[] bIV = new byte[] { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 };
                byte[] bTmpBuf1 = new byte[8];
                byte[] bTmpBuf2 = new byte[8];

                Array.Copy(bIV, bTmpBuf1, 8);

                if ((newMacData.Length % 8 == 0))
                    iGroup = newMacData.Length / 8;
                else
                    iGroup = newMacData.Length / 8 + 1;

                int i = 0;
                int j = 0;

                for (i = 0; i < iGroup; i++)
                {
                    Array.Copy(newMacData, 8 * i, bTmpBuf2, 0, 8);
                    for (j = 0; j < 8; j++)
                        bTmpBuf1[j] = (byte)(bTmpBuf1[j] ^ bTmpBuf2[j]);
                   
                }
                bTmpBuf2 = HCDES(bKey, bTmpBuf1);
                
                return bTmpBuf2;
            }
            catch
            {
                return new byte[8];
            }
        }

    }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩av一区二| 一区二区三区中文免费| 久久九九久精品国产免费直播| 精品国产乱子伦一区| 中文字幕免费在线观看视频一区| 国产精品久久久久久久久免费相片| 精品成人在线观看| 欧美美女bb生活片| 国产精品视频免费| 午夜精品影院在线观看| 蜜桃91丨九色丨蝌蚪91桃色| 国产成人自拍网| 欧美性大战xxxxx久久久| 欧美成人a视频| 一区二区激情视频| 九九九久久久精品| 欧美日韩综合不卡| 国产日韩欧美a| 蜜臀av一区二区| 777xxx欧美| 视频一区免费在线观看| 色一情一乱一乱一91av| 中文字幕+乱码+中文字幕一区| 久久99精品国产91久久来源| 欧美日韩国产另类不卡| 亚洲国产一区二区三区青草影视| 99视频有精品| 亚洲欧洲性图库| 91老师国产黑色丝袜在线| 自拍偷自拍亚洲精品播放| 成人爽a毛片一区二区免费| 91亚洲大成网污www| 9色porny自拍视频一区二区| 成人性视频免费网站| 精品对白一区国产伦| 日韩国产精品久久久| 91麻豆精品91久久久久同性| 亚洲成人资源网| 欧美久久久久久蜜桃| 同产精品九九九| 精品久久久久久久久久久久久久久久久 | 国产精品少妇自拍| 豆国产96在线|亚洲| 国产精品理论片在线观看| 成人激情综合网站| 亚洲人成伊人成综合网小说| 欧美曰成人黄网| 日本美女一区二区三区视频| 欧美一区二区免费| 国产九色sp调教91| 亚洲女人的天堂| 91精品国产丝袜白色高跟鞋| 九一久久久久久| 国产无一区二区| 一本大道久久a久久综合| 一区二区成人在线视频| 欧美一区二区在线看| 国产一区二区三区四区五区入口 | 一区二区三区在线免费播放| 欧美午夜一区二区| 久草中文综合在线| 国产精品久久久久精k8| 欧美日韩日日摸| 经典三级在线一区| 亚洲欧洲性图库| 欧美日韩aaaaa| 国产精品一级片在线观看| 日韩美女啊v在线免费观看| 精品视频1区2区3区| 极品少妇xxxx精品少妇偷拍| 亚洲三级在线播放| 精品理论电影在线观看| 色婷婷综合久色| 国产一区二区网址| 亚洲成在人线免费| 国产清纯白嫩初高生在线观看91| 欧美亚洲精品一区| 高清不卡在线观看| 午夜精品一区在线观看| 中文字幕亚洲综合久久菠萝蜜| 欧美日韩一二三| 欧美在线观看18| 成人久久久精品乱码一区二区三区| 亚洲1区2区3区视频| 国产精品久久一级| 日韩精品在线一区| 欧美在线高清视频| 97精品电影院| 国产91精品入口| 精品一区二区精品| 亚洲1区2区3区4区| 亚洲欧洲成人精品av97| 久久久国产精品不卡| 欧美福利视频导航| 欧美在线一二三| 色综合天天综合在线视频| 国产大陆a不卡| 看片网站欧美日韩| 日韩电影在线观看一区| 亚洲男女毛片无遮挡| 国产精品欧美经典| 欧美激情中文字幕一区二区| 日韩精品一区二区三区视频 | 久久99精品一区二区三区三区| 亚洲一区二区三区在线看| 国产精品另类一区| 欧美精品一区二| 精品国产露脸精彩对白| 日韩欧美一级二级三级久久久| 欧美色电影在线| 色婷婷综合视频在线观看| 91丨porny丨最新| 91美女福利视频| 91精品办公室少妇高潮对白| av毛片久久久久**hd| 成人天堂资源www在线| 成人免费毛片a| av影院午夜一区| 91国偷自产一区二区使用方法| 91免费视频网址| 91九色最新地址| 5月丁香婷婷综合| 精品免费国产二区三区| 久久亚洲欧美国产精品乐播| 国产日韩欧美精品电影三级在线| 久久亚洲一级片| 中文字幕一区二区三区四区不卡| 亚洲人被黑人高潮完整版| 一区二区久久久久| 男人的天堂亚洲一区| 国产在线精品不卡| 成人激情动漫在线观看| 色综合久久久久综合99| 欧美三级一区二区| 精品免费日韩av| 成人欧美一区二区三区在线播放| 亚洲视频在线一区| 国产一区不卡在线| 成人avav在线| 欧美性大战久久久| 精品国产伦一区二区三区观看体验| 久久久国产综合精品女国产盗摄| 亚洲欧美综合在线精品| 午夜激情一区二区三区| 精品一区二区免费| 色综合久久久久网| 精品国产sm最大网站| 国产精品久久久久久亚洲毛片 | 狠狠色狠狠色综合系列| 丁香桃色午夜亚洲一区二区三区| 色偷偷一区二区三区| 91精品国产麻豆| 国产精品久久99| 日本美女一区二区三区| 99久久亚洲一区二区三区青草| 欧美日韩国产另类不卡| 亚洲国产精品ⅴa在线观看| 亚洲午夜电影在线| 国产精品影视网| 欧美日本乱大交xxxxx| 久久久国际精品| 日日噜噜夜夜狠狠视频欧美人| 高清国产一区二区| 91精品国产91久久久久久最新毛片| 国产精品久久久久婷婷| 蜜桃av噜噜一区| 在线看不卡av| 亚洲欧洲成人精品av97| 国内精品视频666| 欧美日韩精品一区二区三区| 国产精品乱人伦中文| 另类小说一区二区三区| 91成人在线免费观看| 中文字幕免费不卡在线| 毛片不卡一区二区| 欧美裸体一区二区三区| 国产喷白浆一区二区三区| 美国三级日本三级久久99| 在线看日韩精品电影| 中文一区一区三区高中清不卡| 日韩国产精品久久久久久亚洲| 色老综合老女人久久久| 国产精品网曝门| 国产精品一区二区在线看| 日韩欧美亚洲一区二区| 午夜欧美2019年伦理| 欧美在线观看18| 一区二区日韩av| 91久久久免费一区二区| 一区精品在线播放| 91色综合久久久久婷婷| 国产精品国产三级国产有无不卡 | 久久欧美中文字幕| 免费成人在线影院| 911精品产国品一二三产区| 一区二区三区电影在线播| 色婷婷av一区二区三区软件| 亚洲乱码日产精品bd| 97精品超碰一区二区三区| 亚洲视频你懂的|