簡單的C#.NET 字串加解密程式

來源:互聯網
上載者:User

昨天韓國總部來人對網站進行了Security Review, 看到很多連結字串我們都沒有加密,批評了一下。

要把之前用的字串加解密程式拿出來用用了,順便共用,希望能協助需要的朋友:

密碼編譯演算法使用3DES,key經過MD5雜湊過,強度應該能滿足一般需要了,代碼很少,很方便:

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

namespace NOP.Security
{
    public class Encrypt
    {
        public static string DecryptString(string strText, string key)
        {
            byte[] buffer = new MD5CryptoServiceProvider().ComputeHash(Encoding.ASCII.GetBytes(key));
            TripleDESCryptoServiceProvider provider = new TripleDESCryptoServiceProvider();
            provider.Key = buffer;
            provider.Mode = CipherMode.ECB;
            byte[] inputBuffer = Convert.FromBase64String(strText);
            return Encoding.ASCII.GetString(provider.CreateDecryptor().TransformFinalBlock(inputBuffer, 0, inputBuffer.Length));
        }

        public static string DecryptUTF8String(string strText, string key)
        {
            byte[] buffer = new MD5CryptoServiceProvider().ComputeHash(Encoding.UTF8.GetBytes(key));
            TripleDESCryptoServiceProvider provider = new TripleDESCryptoServiceProvider();
            provider.Key = buffer;
            provider.Mode = CipherMode.ECB;
            byte[] inputBuffer = Convert.FromBase64String(strText);
            return Encoding.UTF8.GetString(provider.CreateDecryptor().TransformFinalBlock(inputBuffer, 0, inputBuffer.Length));
        }

        public static string EncryptString(string strText, string key)
        {
            byte[] buffer = new MD5CryptoServiceProvider().ComputeHash(Encoding.ASCII.GetBytes(key));
            TripleDESCryptoServiceProvider provider = new TripleDESCryptoServiceProvider();
            provider.Key = buffer;
            provider.Mode = CipherMode.ECB;
            byte[] bytes = Encoding.ASCII.GetBytes(strText);
            string str = Convert.ToBase64String(provider.CreateEncryptor().TransformFinalBlock(bytes, 0, bytes.Length));
            provider = null;
            return str;
        }

        public static string EncryptUTF8String(string strText, string key)
        {
            byte[] buffer = new MD5CryptoServiceProvider().ComputeHash(Encoding.UTF8.GetBytes(key));
            TripleDESCryptoServiceProvider provider = new TripleDESCryptoServiceProvider();
            provider.Key = buffer;
            provider.Mode = CipherMode.ECB;
            byte[] bytes = Encoding.UTF8.GetBytes(strText);
            string str = Convert.ToBase64String(provider.CreateEncryptor().TransformFinalBlock(bytes, 0, bytes.Length));
            provider = null;
            return str;
        }
    }

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.