1. 程式人生 > WINDOWS開發 >c# 幾種常見的加密方法的實現

c# 幾種常見的加密方法的實現

1.ACSII碼加密

//ACSII碼加密
        private static string ACSIIPWd(string rpwd)
        {
            string Ret;
            byte[] array = System.Text.Encoding.ASCII.GetBytes(rpwd);
            byte[] byteArray = new byte[array.Length];

            for (int i = 0; i < array.Length; i++)
            {
                int asciicode = (int)(array[i]);
                asciicode = asciicode + 1;
                byteArray[i] = (byte)asciicode;
            }
            System.Text.ASCIIEncoding asciiEncoding = new System.Text.ASCIIEncoding();
            string strCharacter = asciiEncoding.GetString(byteArray);
            Ret = strCharacter;
            return Ret;
        }

2.MD5加密

//MD5加密
        private static string MD5PWd(string rpwd)
        {
            string Ret;

            MD5 md5 = new MD5CryptoServiceProvider();
            byte[] palindata = Encoding.Default.GetBytes(rpwd);//將要加密的字串轉換為位元組陣列
            byte[] encryptdata = md5.ComputeHash(palindata);//將字串加密後也轉換為字元陣列
Ret = Convert.ToBase64String(encryptdata); return Ret; }


3.RSA加密

//RSA加密
        private static string RSAPWD1(string myKeyContainerName)
        {
            string ret = "";         
            CspParameters cp = new CspParameters();
            cp.KeyContainerName 
= myKeyContainerName; RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(cp); ret = rsa.ToXmlString(true); Console.WriteLine("Key is : \n" + rsa.ToXmlString(true)); return ret; }

rsa詳解:https://www.cnblogs.com/ButterflyEffect/p/9494061.html

4.DES加密

//DES加密  
        private static string DESPWD(string ciphertext)
        {
            string desPWD = ""; 
            byte[] buffer;
            DESCryptoServiceProvider DesCSP = new DESCryptoServiceProvider();

            MemoryStream ms = new MemoryStream();//先建立 一個記憶體流
            CryptoStream cryStream = new CryptoStream(ms,DesCSP.CreateEncryptor(),CryptoStreamMode.Write);//將記憶體流連線到加密轉換流
            StreamWriter sw = new StreamWriter(cryStream);
            sw.WriteLine(ciphertext);//將要加密的字串寫入加密轉換流
            sw.Close();
            cryStream.Close();
            buffer = ms.ToArray();//將加密後的流轉換為位元組陣列
            desPWD = Convert.ToBase64String(buffer);//將加密後的位元組陣列轉換為字串

            return desPWD;
        }

5.base64

  ///編碼
        public static string EncodeBase64(string code_type,string code)
        {
            string encode = "";
            byte[] bytes = Encoding.GetEncoding(code_type).GetBytes(code);
            try
            {
                encode = Convert.ToBase64String(bytes);
            }
            catch
            {
                encode = code;
            }
            return encode;
        }
        ///解碼
        public static string DecodeBase64(string code_type,string code)
        {
            string decode = "";
            byte[] bytes = Convert.FromBase64String(code);
            try
            {
                decode = Encoding.GetEncoding(code_type).GetString(bytes);
            }
            catch
            {
                decode = code;
            }
            return decode;
        }