ase加密方式,php加密,c#解密

<?php
//https://my.oschina.net/u/3403514/blog/1809008
class Aes
{
    //密鑰 須是16位
    public $key ;

    /**
     * 解密字符串
     * @param string $data 字符串
     * @return string
     */
    public function __construct()
    {
    	$this->key = 'r!Q9XE0e^yFIWO0h';
    }

    /**
     * 解密字符串
     * @param string $strr
     * @return string
     */
    public  function decode($str)
    {
        return openssl_decrypt(base64_decode($str),"AES-128-ECB",$this->key,OPENSSL_RAW_DATA, "");
    }

    /**
     * 加密字符串
     * @param string $str
     * @return string
     */
    public  function encode($str)
    {
        //return openssl_encrypt('ABCDEFG', 'AES-128-ECB', $this->key, 0, "");
        return base64_encode(openssl_encrypt($str,"AES-128-ECB",$this->key,OPENSSL_RAW_DATA, ""));
    }

}

 

        private const string sKey = "r!Q9XE0e^yFIWO0h";

        #region RijndaelManaged加密
        /// <summary>
        /// 加密數據
        /// from https://www.cnblogs.com/nsky/p/4481953.html
        /// </summary>
        /// <param name="Text">要加密的內容</param>
        /// <param name="sKey">key,必須爲32位</param>
        /// <returns></returns>
        public static string RiEncrypt(string Text, string sKey)
        {
            byte[] keyArray = UTF8Encoding.UTF8.GetBytes(sKey);
            //TripleDESCryptoServiceProvider
            RijndaelManaged encryption = new RijndaelManaged();
            encryption.Key = keyArray;

            encryption.Mode = CipherMode.ECB;

            encryption.Padding = PaddingMode.PKCS7;

            ICryptoTransform cTransform = encryption.CreateEncryptor();

            byte[] _EncryptArray = UTF8Encoding.UTF8.GetBytes(Text);

            byte[] resultArray = cTransform.TransformFinalBlock(_EncryptArray, 0, _EncryptArray.Length);

            return Convert.ToBase64String(resultArray, 0, resultArray.Length);

        }
        #endregion
        #region =======RijndaelManaged解密========
        /// <summary>
        /// 解密數據
        /// from https://www.cnblogs.com/nsky/p/4481953.html
        /// </summary>
        /// <param name="Text"></param>
        /// <param name="sKey"></param>
        /// <returns></returns>
        public static string RiDecrypt(string Text, string sKey)
        {
            byte[] keyArray = UTF8Encoding.UTF8.GetBytes(sKey);

            RijndaelManaged decipher = new RijndaelManaged();

            decipher.Key = keyArray;

            decipher.Mode = CipherMode.ECB;

            decipher.Padding = PaddingMode.PKCS7;

            ICryptoTransform cTransform = decipher.CreateDecryptor();

            byte[] _EncryptArray = Convert.FromBase64String(Text);

            byte[] resultArray = cTransform.TransformFinalBlock(_EncryptArray, 0, _EncryptArray.Length);

            return UTF8Encoding.UTF8.GetString(resultArray);

        }
        #endregion

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章