Home > Backend Development > PHP Tutorial > php-关于DES加密 求帮助!

php-关于DES加密 求帮助!

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Release: 2016-06-02 11:33:29
Original
907 people have browsed it

php加密des

对接方des加密 是用.net 写的

我用的是php 就大侠把.net的加密程序帮我 转换成 php的

下面是 .NET 的加密程序:

<code> public class DESEncryptDecrypt    {        private string Key;        private string IV;        private DESCryptoServiceProvider IDes;        private byte[] GetKey;        private byte[] GetIV;        public DESEncryptDecrypt()        {            this.Key = "%&hj7x89H$yuBI0456FtmaT5&fvHUFCy76*h%(HilJ$lhj!y6&(*jkP87jH7&*^$^&*%&*%$@#@^";            this.IV = "E4ghj*Ghg7!rNIfb&95GUY86GfghUb#er57HBh(u%g6HJ($jhWk7&!hg4ui%$hjk";            this.Init();        }        public DESEncryptDecrypt(string Key)        {            this.Key = Key;            this.IV = "E4ghj*Ghg7!rNIfb&95GUY86GfghUb#er57HBh(u%g6HJ($jhWk7&!hg4ui%$hjk";            this.Init();        }        public DESEncryptDecrypt(string Key,string IV)        {            this.Key = Key;            this.IV = IV;            this.Init();        }        private void Init()        {            this.IDes = new DESCryptoServiceProvider();            this.IDes.GenerateKey();            this.GetKey = this.IDes.Key;            this.IDes.GenerateIV();            this.GetIV = this.IDes.IV;        }        /// <summary>        /// 获得密钥        /// </summary>        /// <returns>密钥</returns>        private byte[] GetLegalKey()        {            string sTemp = this.Key;            byte[] bytTemp = this.GetKey;            int KeyLength = bytTemp.Length;            if (sTemp.Length > KeyLength)            {                sTemp = sTemp.Substring(0, KeyLength);            }            else            {                if (sTemp.Length         /// 获得初始向量IV        ///         /// <returns>初试向量IV</returns>        private byte[] GetLegalIV()        {            string sTemp = this.Key;            byte[] bytTemp = this.GetIV;            int IVLength = bytTemp.Length;            if (sTemp.Length > IVLength)            {                sTemp = sTemp.Substring(0, IVLength);            }            else            {                if (sTemp.Length         /// 加密算法        ///         /// <param name="data">        /// <returns></returns>        public string Encrypt(string data)        {            //将要加密的数据编码为字节数组            byte[] encrypt_data = System.Text.Encoding.UTF8.GetBytes(data);    //如果使用Unicode编码,支持中文加密            //创建流,保存加密后的数据            MemoryStream ms = new MemoryStream();            //创建加密流            CryptoStream cs = new CryptoStream(ms, this.IDes.CreateEncryptor(this.GetLegalKey(), this.GetLegalIV()), CryptoStreamMode.Write);            //调用Write方法将加密后的结果写到 流 中            cs.Write(encrypt_data, 0, encrypt_data.Length);            //将数据从流写入内存(这句不能少,否则在从内存导出到字符串的时候会出现字符丢失)            cs.FlushFinalBlock();            //ms.ToString(); ==>将流写入字节数组中            string result = Convert.ToBase64String(ms.ToArray());            ms.Close();            cs.Close();            return result;        }        /// <summary>        /// 解密算法        /// </summary>        /// <param name="data">        /// <returns></returns>        public string Decrypt(string data)        {            byte[] decrypt_data = Convert.FromBase64String(data);            MemoryStream ms = new MemoryStream();            CryptoStream cs = new CryptoStream(ms, this.IDes.CreateDecryptor(this.GetLegalKey(), this.GetLegalIV()), CryptoStreamMode.Write);            cs.Write(decrypt_data, 0, decrypt_data.Length);            cs.FlushFinalBlock();            string result = System.Text.Encoding.UTF8.GetString(ms.ToArray());            ms.Close();            cs.Close();            return result;        }    }</code>
Copy after login
Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template