PHP和.NET通用的加密解密函数类,均使用3DES加解密 .
以下为php代码
- <PRE class=PHP name="code"> </PRE><PRE class=PHP name="code">PHP加解密函数:</PRE><PRE class=PHP name="code"> </PRE><PRE class=PHP name="code"> function encrypt($string) {
- //加密用的密钥文件
- $key = "xxxxxxxx";
- //加密方法
- $cipher_alg = MCRYPT_TRIPLEDES;
- //初始化向量来增加安全性
- $iv = mcrypt_create_iv(mcrypt_get_iv_size($cipher_alg,MCRYPT_MODE_ECB), MCRYPT_RAND);
- //开始加密
- $encrypted_string = mcrypt_encrypt($cipher_alg, $key, $string, MCRYPT_MODE_ECB, $iv);
- return base64_encode($encrypted_string);//转化成16进制
- // return $encrypted_string;
- }
- function decrypt($string) {
- $string = base64_decode($string);
- //加密用的密钥文件
- $key = "xxxxxxxx";
- //加密方法
- $cipher_alg = MCRYPT_TRIPLEDES;
- //初始化向量来增加安全性
- $iv = mcrypt_create_iv(mcrypt_get_iv_size($cipher_alg,MCRYPT_MODE_ECB), MCRYPT_RAND);
- //开始解密
- $decrypted_string = mcrypt_decrypt($cipher_alg, $key, $string, MCRYPT_MODE_ECB, $iv);
- return trim($decrypted_string);
- }</PRE>
以下为.net代码
- using System;
- using System.Security.Cryptography;
- using System.Text;
- /**//// <SUMMARY>
- /// Crypto3DES 的摘要说明。
- /// </SUMMARY>
- public class Crypto3DES
- {
- public Crypto3DES()
- {
- //
- // TODO: 在此处添加构造函数逻辑
- //
- }
- private System.Text.Encoding encoding;
- /**//// <SUMMARY>
- /// 获取密匙
- /// </SUMMARY>
- public string Key
- {
- get
- {
- return "xxxxxxxx";
- }
- }
- /**//// <SUMMARY>
- /// 获取或设置加密解密的编码
- /// </SUMMARY>
- public System.Text.Encoding Encoding
- {
- get
- {
- if( encoding == null )
- {
- encoding = System.Text.Encoding.UTF8;
- }
- return encoding;
- }
- set
- {
- encoding = value;
- }
- }
- /**//// <SUMMARY>
- /// 加密
- /// </SUMMARY>
- /// <PARAM name="strString"></PARAM>
- /// <PARAM name="strKey"></PARAM>
- /// <PARAM name="encoding"></PARAM>
- /// <RETURNS></RETURNS>
- public string Encrypt3DES( string strString )
- {
- DESCryptoServiceProvider DES = new DESCryptoServiceProvider();
- DES.Key = Encoding.GetBytes( this.Key );
- DES.Mode = CipherMode.ECB;
- DES.Padding = PaddingMode.Zeros;
- ICryptoTransform DESEncrypt = DES.CreateEncryptor();
- byte[] Buffer = encoding.GetBytes(strString);
- return Convert.ToBase64String(DESEncrypt.TransformFinalBlock(Buffer, , Buffer.Length));
- }
- /**//// <SUMMARY>
- /// 解密
- /// </SUMMARY>
- /// <PARAM name="strString"></PARAM>
- /// <PARAM name="strKey"></PARAM>
- /// <RETURNS></RETURNS>
- public string Decrypt3DES( string strString )
- {
- DESCryptoServiceProvider DES = new DESCryptoServiceProvider ();
- DES.Key = Encoding.UTF8.GetBytes( this.Key );
- DES.Mode = CipherMode.ECB;
- DES.Padding = PaddingMode.Zeros;
- ICryptoTransform DESDecrypt = DES.CreateDecryptor();
- byte[] Buffer = Convert.FromBase64String(strString);
- return UTF8Encoding.UTF8.GetString( DESDecrypt.TransformFinalBlock(Buffer, , Buffer.Length) );
- }
- }
PHP和.NET通用的加密解密函数类,均使用3DES加解密 .的更多相关文章
- 3DES加解密 C语言
3DES(或称为Triple DES),它相当于是对每个数据块应用三次DES加密算法.3*8字节密钥. 设Ek()和Dk()代表DES算法的加密和解密过程,K代表DES算法使用的密钥,P代表明文,C代 ...
- 3DES加解密类
using System; using System.IO; using System.Security.Cryptography; using System.Text; namespace GT.C ...
- 3DES 加解密
using System; using System.IO; using System.Security.Cryptography; using System.Text; namespace Comm ...
- PHP版3DES加解密类
<?php /** * * PHP版3DES加解密类 * * 可与java的3DES(DESede)加密方式兼容 * * @Author:蓝凤(ilanfeng.com) * * @versio ...
- 3DES加解密【示例】
代码 /** * 3DES加解密 */ public class DESedeUtils { private static final String ALGORITHM_MD5 = &qu ...
- java 与 c# 3des 加解密
java 与 c# 3des 加解密 主要差异如下: 1. 对于待加密解密的数据,各自的填充模式不一样 C#的模式有:ANSIX923.ISO10126.None.PKCS7.Zero,而Jav ...
- C# 利用ICSharpCode.SharpZipLib实现在线加密压缩和解密解压缩 C# 文件压缩加解密
C# 利用ICSharpCode.SharpZipLib实现在线加密压缩和解密解压缩 这里我们选用ICSharpCode.SharpZipLib这个类库来实现我们的需求. 下载地址:http:// ...
- 3DES 加解密,对长度不限制
#region 3DES /// <summary> /// 3DES加密 /// </summary> /// <param name="strString& ...
- 加解密算法二:非对称加解密及RSA算法的实现
加密和解密使用不同的密钥的一类加密算法.这类加密算法通常有两个密钥A和B,使用密钥A加密数据得到的密文,只有密钥B可以进行解密操作(即使密钥A也无法解密):相反,使用密钥B加密数据得到的密文,只有密钥 ...
随机推荐
- intel simd 资料
http://www.cnblogs.com/zyl910/archive/2012/04/26/md00.html https://software.intel.com/sites/landingp ...
- VC++编译MPIR 2.7.0
目录 第1章编译 2 1.1 简介 2 1.2 下载 3 1.3 解决方案 4 1.4 创建项目 5 1.5 复制文件树 6 1.6 不使用预编译头文件 8 ...
- Spring AOP propagation七种属性值
<!-- 配置事务通知 --> <tx:advice id="advice" transaction-manager="transactionManag ...
- noip2016酱油记day1
真的是noip2016酱油记了. t1模拟,应该可以过. t2用了个简单的桶瞎搞,估计剩50pt了. t3直接不会写. 心好累... 考的分数肯定没去年高. 但不论如何,明天正常发挥就好. 正常发挥下 ...
- JavaScript ——闭包理解
昨天晚上听别人谈起闭包这个东西,虽然对js有一点了解但却丝毫没有印象,今天也没什么事就顺便研究了一下满足好奇宝宝.整合于网上的理解,记录一下. 一.闭包的作用域 要理解闭包,首先必须理解Javascr ...
- 1.2 认识ASP.NET MVC项目结构
1.开发环境 操作系统:xp.vista.windows 7.windows 8.windows server 2003|2008|2008R2|2012: 集成开发环境IDE: Vsiual Stu ...
- js获取随机数
js 获取随机数方法如下: 1.Math.random()表示 结果为0-1间的一个随机数(包括0,不包括1) : 返回指定范围的随机数(m-n之间)的公式 Math.random()*(n-m)+m ...
- 11 个用来创建图形和图表的 JavaScript 工具包
11个用来创建图形和图表的JavaScript工具包,方便开发者使用,喜欢的各位收藏一下吧! Aristochart DEMO|| Download Aristochart 是一个用来创建图形和图表的 ...
- HTML5自学笔记[ 3 ]表单验证反馈
表单控件对象的validity对象可以设置或返回相关的验证信息(在invalid事件处理中获取validity对象): 属性valid:为true所有验证通过,为False至少有一种验证失败. 属性v ...
- (09)odoo工作流
--------------修订时间14:54 2016-09-18 星期日21:59 2016-06-12 星期日10:06 2016-02-24 星期三17:14 2016-01-29 星期五-- ...