php-关于DES加密 求帮助!

php中文网
发布: 2016-06-02 11:33:29
原创
1226人浏览过

php加密des

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

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

SuperCms在线订餐系统
SuperCms在线订餐系统

模板采用响应式设计,自动适应手机,电脑及平板显示;满足单一店铺外卖需求。功能:1.菜单分类管理2.菜品管理:菜品增加,删除,修改3.订单管理4.友情链接管理5.数据库备份6.文章模块:如:促销活动,帮助中心7.单页模块:如:企业信息,关于我们更强大的功能在开发中……安装方法:上传到网站根目录,运行http://www.***.com/install 自动

SuperCms在线订餐系统 0
查看详情 SuperCms在线订餐系统

下面是 .NET 的加密程序:

 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 < KeyLength)                {                    sTemp = sTemp.PadRight(KeyLength, ' ');                }            }            return ASCIIEncoding.ASCII.GetBytes(sTemp);        }        /// <summary>        /// 获得初始向量IV        /// </summary>        /// <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 < IVLength)                {                    sTemp = sTemp.PadRight(IVLength, ' ');                }            }            return ASCIIEncoding.ASCII.GetBytes(sTemp);        }        /// <summary>        /// 加密算法        /// </summary>        /// <param name="data"></param>        /// <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"></param>        /// <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;        }    }
登录后复制
PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号