C # Base64 encoding and decoding, Md5, Rsa encryption and decryption

using System;
using System.IO;
using System.Security.Cryptography;
using System.Text;

namespace ClassLibrary1
{
    class Code
    {
        //1、base64  to  string
        public static string Base64Encrypt(string strPath)
        {
            byte[] bpath = Convert.FromBase64String(strPath);
            string returnData = Encoding.Default.GetString(bpath);
            return returnData;
        }


        //2、string   to  base64
        public static string Base64DesEncrypt(string strPath)
        {
            Encoding encode = Encoding.ASCII;
            byte[] bytedata = encode.GetBytes(strPath);
            string returnData = Convert.ToBase64String(bytedata, 0, bytedata.Length);
            return returnData;
        }

        ///  <Summary> 
        /// string into the MD5
         ///  </ Summary> 
        ///  <param name = "sourceStr"> Source Type </ param> 
        ///  <Returns> encrypted string < / Returns> 
        public  static  String Md5Encrypt ( String sourceStr)
        {
            MD5 the MD5 = new new the MD5CryptoServiceProvider ();
             // be encrypted string into a byte array 
            byte [] = palindata Encoding.Default.GetBytes (sourceStr);
             // encrypted by byte array 
            byte [] EncryptData = md5.ComputeHash (palindata);
             // the encrypted byte array into a string 
            string returndata = Convert.ToBase64String (EncryptData);
             return returndata;
        }

        ///  <Summary> 
        ///   the Md5 encryption
         ///  </ Summary> 
        ///  <param name = "pToEncrypt"> to encrypt String </ param> 
        ///  <param name = "sKey"> to encrypt the Key </ param> 
        ///  <Returns> </ Returns> 
        public  static  String Md5Encrypt ( String pToEncrypt, String sKey)
        {
            DESCryptoServiceProvider des = new DESCryptoServiceProvider();
            byte[] inputByteArray = Encoding.Default.GetBytes(pToEncrypt);
            des.Key = Encoding.ASCII.GetBytes(sKey);
            des.IV = Encoding.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);
            }
            was p = ret.ToString ();
            return s;
        }
        
        ///  <Summary> 
        ///   the Md5 decryption
         ///  </ Summary> 
        ///  <param name = "pToDecrypt"> decrypt String </ param> 
        ///  <param name = "sKey"> decryption key (to 8 digits) </ param> 
        ///  <Returns> </ Returns> 
        public  static  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 = Encoding.ASCII.GetBytes(sKey);
            des.IV = Encoding.ASCII.GetBytes(sKey);
            MemoryStream ms = new MemoryStream();
            CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Write);
            cs.Write(inputByteArray, 0, inputByteArray.Length);
            cs.FlushFinalBlock();

            return Encoding.Default.GetString(ms.ToArray());
        }


        public  static the CspParameters the Param;
         ///  <Summary> 
        /// for RSA encryption
         ///  </ Summary> 
        ///  <param name = "sourceStr"> source string </ param> 
        ///  <Returns> encrypted string </ Returns> 
        public  static  string RsaEncrypt ( string sourceStr)
        {
            Param = new new CspParameters ();
             // name of the key container, keep the encryption and decryption to decrypt consistent success 
            Param.KeyContainerName = " Navis " ;
             a using (RSACryptoServiceProvider rsa = new new RSACryptoServiceProvider (param))
            {
                // converts be encrypted string into a byte array 
                byte [] = plainData Encoding.Default.GetBytes (sourceStr);
                 // encrypted by byte array 
                byte [] = rsa.Encrypt EncryptData (plainData, to false );
                 // encrypted byte array into a string 
                return Convert.ToBase64String (EncryptData);
            }
        }

        ///  <Summary> 
        /// decrypts RSA cryptosystem
         ///  </ Summary> 
        ///  <param name = "codingStr"> encrypted string </ param> 
        ///  <Returns> decrypted string </ Returns> 
        public  static  String RsaDesEncrypt ( String codingStr)
        {
            Param = new CspParameters();
            Param.KeyContainerName = "Navis";
            using (RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(Param))
            {
                byte[] encryptdata = Convert.FromBase64String(codingStr);
                byte[] decryptdata = rsa.Decrypt(encryptdata, false);
                return Encoding.Default.GetString(decryptdata);
            }
        }
    }
}

 

Guess you like

Origin www.cnblogs.com/zhang1f/p/11104508.html