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加密数据得到的密文,只有密钥 ...
随机推荐
- 【官方方法】xcode7免证书真机调试
[官方方法]xcode7免证书真机调试 步骤比较简单,我就简单总结一下. 1. 进入xcode,菜单栏选择xcode –> preferences (快捷键 command + ,)在Accou ...
- hiho1123_好配对
题目 给定两个序列a和b,每个序列中可能含有重复的数字. 一个配对(i,j)是一个好配对当从第一个序列中选出一个数ai,再从第二个序列中选出一个数bj且满足ai>bj. 给出两个序列,问存在多少 ...
- <转> jsp页面向action传值的方法(最后一种简单)
多的不说,直接上代码; struts.xml代码: <?xml version="1.0" encoding="UTF-8"?> <!DOCT ...
- MariaDB 加密特性及使用方法
版权声明:本文由吴洪辉原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/193 来源:腾云阁 https://www.qclo ...
- 【图形学】我理解的伽马校正(Gamma Correction)
http://blog.csdn.net/candycat1992/article/details/46228771/ 写在前面 我相信几乎所有做图像处理方面的人都听过伽马校正(Gamma Corre ...
- redis订阅发布
一.简介 Pub/Sub 从字面上理解就是发布(Publish)与订阅(Subscribe),在Redis中,你可以设定对某一个key值进行消息发布及消息订阅,当一个key值上进行了消息发布后,所有订 ...
- js节点问题
转载 http://dwt1220.blog.51cto.com/1028523/745402 本文出自 “dwt1220” 博客,请务必保留此出处http://dwt1220.blog.51cto. ...
- CSS3:不可思议的border属性&Web字体图标Font Awesome
CSS3:不可思议的border属性 转载至——译文:不可思议的CSS border属性 原文:Magic of CSS border property Web字体图标Font Awesome 转载 ...
- ajax轮询session阻塞问题
近来读了几篇关于ASP.NET下Session机制的文章,结合自己的实际应用,有点感想: 在ASP.NET的Session的默认机制下,对同一个SessionID下的用户请求ASP.NE ...
- HTML5自学笔记[ 2 ]新增表单控件和表单属性
新增<input>属性type="email",自动验证,若输入不为邮箱,则不能提交. 新增<input>属性type="tel",在移 ...