1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | <?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, "")); } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 | 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 |