欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

C#中的常見(jiàn)加密解密類-創(chuàng)新互聯(lián)

今天小編就為大家?guī)?lái)一篇C#中的常見(jiàn)加密解密類的文章。小編覺(jué)得挺不錯(cuò)的,為此分享給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧。

創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),安澤企業(yè)網(wǎng)站建設(shè),安澤品牌網(wǎng)站建設(shè),網(wǎng)站定制,安澤網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷,網(wǎng)絡(luò)優(yōu)化,安澤網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。

常見(jiàn)的加密方式分為可逆和不可逆兩種方式

   可逆:RSA,AES,DES等

   不可逆:常見(jiàn)的MD5,SHAD等

   常見(jiàn)的加密方式封裝到一個(gè)Password類中

    public class Password
    {
        /// <summary>
        /// 此代碼示例通過(guò)創(chuàng)建哈希字符串適用于任何 MD5 哈希函數(shù) (在任何平臺(tái)) 上創(chuàng)建 32 個(gè)字符的十六進(jìn)制格式哈希字符串
        /// 官網(wǎng)案例改編
        /// </summary>
        /// <param name="source"></param>
        /// <returns></returns>
        public static string Get32MD5One(string source)
        {
            using (System.Security.Cryptography.MD5 md5Hash = System.Security.Cryptography.MD5.Create())
            {
                byte[] data = md5Hash.ComputeHash(System.Text.Encoding.UTF8.GetBytes(source));
                System.Text.StringBuilder sBuilder = new System.Text.StringBuilder();
                for (int i = 0; i < data.Length; i++)
                {
                    sBuilder.Append(data[i].ToString("x2"));
                }

                string hash = sBuilder.ToString();
                return hash.ToUpper();
            }
        }

        /// <summary>
        /// 獲取16位md5加密
        /// </summary>
        /// <param name="source"></param>
        /// <returns></returns>
        public static string Get16MD5One(string source)
        {
            using (System.Security.Cryptography.MD5 md5Hash = System.Security.Cryptography.MD5.Create())
            {
                byte[] data = md5Hash.ComputeHash(System.Text.Encoding.UTF8.GetBytes(source));
                //轉(zhuǎn)換成字符串,并取9到25位
                string sBuilder = BitConverter.ToString(data, 4, 8);
                //BitConverter轉(zhuǎn)換出來(lái)的字符串會(huì)在每個(gè)字符中間產(chǎn)生一個(gè)分隔符,需要去除掉
                sBuilder = sBuilder.Replace("-", "");
                return sBuilder.ToString().ToUpper();
            }
        }

        //// <summary>
        /// </summary>
        /// <param name="strSource">需要加密的明文</param>
        /// <returns>返回32位加密結(jié)果,該結(jié)果取32位加密結(jié)果的第9位到25位</returns>
        public static string Get32MD5Two(string source)
        {
            System.Security.Cryptography.MD5 md5 = new System.Security.Cryptography.MD5CryptoServiceProvider();
            //獲取密文字節(jié)數(shù)組
            byte[] bytResult = md5.ComputeHash(System.Text.Encoding.Default.GetBytes(source));
            //轉(zhuǎn)換成字符串,32位
            string strResult = BitConverter.ToString(bytResult);
            //BitConverter轉(zhuǎn)換出來(lái)的字符串會(huì)在每個(gè)字符中間產(chǎn)生一個(gè)分隔符,需要去除掉
            strResult = strResult.Replace("-", "");
            return strResult.ToUpper();
        }

        //// <summary>
        /// </summary>
        /// <param name="strSource">需要加密的明文</param>
        /// <returns>返回16位加密結(jié)果,該結(jié)果取32位加密結(jié)果的第9位到25位</returns>
        public static string Get16MD5Two(string source)
        {
            System.Security.Cryptography.MD5 md5 = new System.Security.Cryptography.MD5CryptoServiceProvider();
            //獲取密文字節(jié)數(shù)組
            byte[] bytResult = md5.ComputeHash(System.Text.Encoding.Default.GetBytes(source));
            //轉(zhuǎn)換成字符串,并取9到25位
            string strResult = BitConverter.ToString(bytResult, 4, 8);
            //BitConverter轉(zhuǎn)換出來(lái)的字符串會(huì)在每個(gè)字符中間產(chǎn)生一個(gè)分隔符,需要去除掉
            strResult = strResult.Replace("-", "");
            return strResult.ToUpper();
        }

        //SHA為不可逆加密方式
        public static string SHA1Encrypt(string normalTxt)
        {
            var bytes = System.Text.Encoding.Default.GetBytes(normalTxt);
            var SHA = new System.Security.Cryptography.SHA1CryptoServiceProvider();
            var encryptbytes = SHA.ComputeHash(bytes);
            return Convert.ToBase64String(encryptbytes);
        }
        public static string SHA256Encrypt(string normalTxt)
        {
            var bytes = System.Text.Encoding.Default.GetBytes(normalTxt);
            var SHA256 = new System.Security.Cryptography.SHA256CryptoServiceProvider();
            var encryptbytes = SHA256.ComputeHash(bytes);
            return Convert.ToBase64String(encryptbytes);
        }
        public static string SHA384Encrypt(string normalTxt)
        {
            var bytes = System.Text.Encoding.Default.GetBytes(normalTxt);
            var SHA384 = new System.Security.Cryptography.SHA384CryptoServiceProvider();
            var encryptbytes = SHA384.ComputeHash(bytes);
            return Convert.ToBase64String(encryptbytes);
        }
        public string SHA512Encrypt(string normalTxt)
        {
            var bytes = System.Text.Encoding.Default.GetBytes(normalTxt);
            var SHA512 = new System.Security.Cryptography.SHA512CryptoServiceProvider();
            var encryptbytes = SHA512.ComputeHash(bytes);
            return Convert.ToBase64String(encryptbytes);
        }

            /// <summary>
            /// 將base64格式,轉(zhuǎn)換utf8
            /// </summary>
            /// <param name="content">解密內(nèi)容</param>
            /// <returns></returns>
            public static string Base64Decode(string content)
        {
            byte[] bytes = Convert.FromBase64String(content);
            return System.Text.Encoding.UTF8.GetString(bytes);
        }

        /// <summary> 
        ///  DES加密數(shù)據(jù) 
        /// </summary> 
        /// <param name="Text"></param> 
        /// <param name="sKey"></param> 
        /// <returns></returns> 
        public static string DESEncryption(string Text, string sKey=null)
        {
            sKey = sKey ?? "zhiqiang";
            try
            {
                System.Security.Cryptography.DESCryptoServiceProvider des = new System.Security.Cryptography.DESCryptoServiceProvider();
                byte[] inputByteArray;
                inputByteArray = System.Text.Encoding.Default.GetBytes(Text);
                string md5SKey = Get32MD5One(sKey).Substring(0, 8);
                des.Key = System.Text.ASCIIEncoding.ASCII.GetBytes(md5SKey);
                des.IV = System.Text.ASCIIEncoding.ASCII.GetBytes(md5SKey);
                System.IO.MemoryStream ms = new System.IO.MemoryStream();
                System.Security.Cryptography.CryptoStream cs = new System.Security.Cryptography.CryptoStream(ms, des.CreateEncryptor(), System.Security.Cryptography.CryptoStreamMode.Write);
                cs.Write(inputByteArray, 0, inputByteArray.Length);
                cs.FlushFinalBlock();
                System.Text.StringBuilder ret = new System.Text.StringBuilder();
                foreach (byte b in ms.ToArray())
                {
                    ret.AppendFormat("{0:X2}", b);
                }
                return ret.ToString();
            }catch { return "error"; }
        }

        /// <summary> 
        /// DES解密數(shù)據(jù) 
        /// </summary> 
        /// <param name="Text"></param> 
        /// <param name="sKey"></param> 
        /// <returns></returns> 
        public static string DESDecrypt(string Text, string sKey=null)
        {
            sKey = sKey ?? "zhiqiang";
            try
            {
                System.Security.Cryptography.DESCryptoServiceProvider des = new System.Security.Cryptography.DESCryptoServiceProvider();
                int len;
                len = Text.Length / 2;
                byte[] inputByteArray = new byte[len];
                int x, i;
                for (x = 0; x < len; x++)
                {
                    i = Convert.ToInt32(Text.Substring(x * 2, 2), 16);
                    inputByteArray[x] = (byte)i;
                }
                string md5SKey = Get32MD5One(sKey).Substring(0, 8);
                des.Key = System.Text.ASCIIEncoding.ASCII.GetBytes(md5SKey);
                des.IV = System.Text.ASCIIEncoding.ASCII.GetBytes(md5SKey);
                System.IO.MemoryStream ms = new System.IO.MemoryStream();
                System.Security.Cryptography.CryptoStream cs = new System.Security.Cryptography.CryptoStream(ms, des.CreateDecryptor(), System.Security.Cryptography.CryptoStreamMode.Write);
                cs.Write(inputByteArray, 0, inputByteArray.Length);
                cs.FlushFinalBlock();
                return System.Text.Encoding.Default.GetString(ms.ToArray());
            }catch { return "error"; }
        }

        /// <summary> 
        /// RSA加密數(shù)據(jù) 
        /// </summary> 
        /// <param name="express"></param> 
        /// <param name="sKey"></param> 
        /// <returns></returns> 
        public static string RSAEncryption(string express, string KeyContainerName = null)
        {

            System.Security.Cryptography.CspParameters param = new System.Security.Cryptography.CspParameters();
            param.KeyContainerName = KeyContainerName ?? "zhiqiang"; //密匙容器的名稱,保持加密解密一致才能解密成功
            using (System.Security.Cryptography.RSACryptoServiceProvider rsa = new System.Security.Cryptography.RSACryptoServiceProvider(param))
            {
                byte[] plaindata = System.Text.Encoding.Default.GetBytes(express);//將要加密的字符串轉(zhuǎn)換為字節(jié)數(shù)組
                byte[] encryptdata = rsa.Encrypt(plaindata, false);//將加密后的字節(jié)數(shù)據(jù)轉(zhuǎn)換為新的加密字節(jié)數(shù)組
                return Convert.ToBase64String(encryptdata);//將加密后的字節(jié)數(shù)組轉(zhuǎn)換為字符串
            }
        }
        /// <summary> 
        /// RSA解密數(shù)據(jù) 
        /// </summary> 
        /// <param name="express"></param> 
        /// <param name="sKey"></param> 
        /// <returns></returns> 
        public static string RSADecrypt(string ciphertext, string KeyContainerName = null)
        {
            System.Security.Cryptography.CspParameters param = new System.Security.Cryptography.CspParameters();
            param.KeyContainerName = KeyContainerName ?? "zhiqiang";
            using (System.Security.Cryptography.RSACryptoServiceProvider rsa = new System.Security.Cryptography.RSACryptoServiceProvider(param))
            {
                byte[] encryptdata = Convert.FromBase64String(ciphertext);
                byte[] decryptdata = rsa.Decrypt(encryptdata, false);
                return System.Text.Encoding.Default.GetString(decryptdata);
            }
        }


    }

以上就是C#中的常見(jiàn)加密解密類的具體內(nèi)容,代碼詳細(xì)清楚,如果在日常工作遇到這個(gè)問(wèn)題,希望你能通過(guò)這篇文章解決問(wèn)題。如果想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)網(wǎng)站制作公司行業(yè)資訊頻道!

創(chuàng)新互聯(lián)www.cdcxhl.cn,專業(yè)提供香港、美國(guó)云服務(wù)器,動(dòng)態(tài)BGP最優(yōu)骨干路由自動(dòng)選擇,持續(xù)穩(wěn)定高效的網(wǎng)絡(luò)助力業(yè)務(wù)部署。公司持有工信部辦法的idc、isp許可證, 機(jī)房獨(dú)有T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確進(jìn)行流量調(diào)度,確保服務(wù)器高可用性。佳節(jié)活動(dòng)現(xiàn)已開(kāi)啟,新人活動(dòng)云服務(wù)器買多久送多久。

當(dāng)前題目:C#中的常見(jiàn)加密解密類-創(chuàng)新互聯(lián)
網(wǎng)站URL:http://chinadenli.net/article8/cepiip.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標(biāo)簽優(yōu)化、全網(wǎng)營(yíng)銷推廣、網(wǎng)站建設(shè)品牌網(wǎng)站建設(shè)、App設(shè)計(jì)面包屑導(dǎo)航

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站
国产白丝粉嫩av在线免费观看| 国产欧美一区二区色综合| 精品偷拍一区二区三区| 日韩亚洲激情在线观看| 国产农村妇女成人精品| 中文字日产幕码三区国产| 两性色午夜天堂免费视频| 嫩草国产福利视频一区二区| 不卡一区二区高清视频| 欧美日韩精品一区二区三区不卡| 婷婷色香五月综合激激情| 亚洲一区二区精品免费视频| 加勒比人妻精品一区二区| 91人妻人人做人碰人人九色| 国产人妻精品区一区二区三区| 视频一区中文字幕日韩| 日韩女优视频国产一区| 国内外激情免费在线视频| 日韩精品人妻少妇一区二区| 欧美日韩国产综合在线| 成人区人妻精品一区二区三区| 五月天综合网五月天综合网| 亚洲中文字幕人妻av| 国产精品免费视频视频| 国产精品免费精品一区二区| 午夜福利大片亚洲一区| 国产午夜精品福利免费不| 欧美亚洲国产日韩一区二区| 视频一区二区 国产精品| 国产在线小视频你懂的| 内射精品欧美一区二区三区久久久 | 免费观看日韩一级黄色大片| 色丁香一区二区黑人巨大| 午夜激情视频一区二区| 国产成人精品国产成人亚洲| 一区二区三区亚洲天堂| 国产乱淫av一区二区三区| 国产精品视频第一第二区| 激情五月天免费在线观看| 在线观看免费无遮挡大尺度视频| 亚洲精品黄色片中文字幕|