以下为php代码

  1. <PRE class=PHP name="code">&nbsp;</PRE><PRE class=PHP name="code">PHP加解密函数:</PRE><PRE class=PHP name="code">&nbsp;</PRE><PRE class=PHP name="code"> function encrypt($string) {
  2. //加密用的密钥文件
  3. $key = "xxxxxxxx";
  4.  
  5. //加密方法
  6. $cipher_alg = MCRYPT_TRIPLEDES;
  7. //初始化向量来增加安全性
  8. $iv = mcrypt_create_iv(mcrypt_get_iv_size($cipher_alg,MCRYPT_MODE_ECB), MCRYPT_RAND);
  9.  
  10. //开始加密
  11. $encrypted_string = mcrypt_encrypt($cipher_alg, $key, $string, MCRYPT_MODE_ECB, $iv);
  12. return base64_encode($encrypted_string);//转化成16进制
  13. // return $encrypted_string;
  14. }
  15.  
  16. function decrypt($string) {
  17. $string = base64_decode($string);
  18.  
  19. //加密用的密钥文件
  20. $key = "xxxxxxxx";
  21.  
  22. //加密方法
  23. $cipher_alg = MCRYPT_TRIPLEDES;
  24. //初始化向量来增加安全性
  25. $iv = mcrypt_create_iv(mcrypt_get_iv_size($cipher_alg,MCRYPT_MODE_ECB), MCRYPT_RAND);
  26.  
  27. //开始解密
  28. $decrypted_string = mcrypt_decrypt($cipher_alg, $key, $string, MCRYPT_MODE_ECB, $iv);
  29. return trim($decrypted_string);
  30. }</PRE>

以下为.net代码

  1. using System;
  2. using System.Security.Cryptography;
  3. using System.Text;
  4.  
  5. /**//// <SUMMARY>
  6. /// Crypto3DES 的摘要说明。
  7. /// </SUMMARY>
  8. public class Crypto3DES
  9. {
  10. public Crypto3DES()
  11. {
  12. //
  13. // TODO: 在此处添加构造函数逻辑
  14. //
  15. }
  16.  
  17. private System.Text.Encoding encoding;
  18.  
  19. /**//// <SUMMARY>
  20. /// 获取密匙
  21. /// </SUMMARY>
  22. public string Key
  23. {
  24. get
  25. {
  26. return "xxxxxxxx";
  27. }
  28. }
  29.  
  30. /**//// <SUMMARY>
  31. /// 获取或设置加密解密的编码
  32. /// </SUMMARY>
  33. public System.Text.Encoding Encoding
  34. {
  35. get
  36. {
  37. if( encoding == null )
  38. {
  39. encoding = System.Text.Encoding.UTF8;
  40. }
  41. return encoding;
  42. }
  43.  
  44. set
  45. {
  46. encoding = value;
  47. }
  48. }
  49.  
  50. /**//// <SUMMARY>
  51. /// 加密
  52. /// </SUMMARY>
  53. /// <PARAM name="strString"></PARAM>
  54. /// <PARAM name="strKey"></PARAM>
  55. /// <PARAM name="encoding"></PARAM>
  56. /// <RETURNS></RETURNS>
  57. public string Encrypt3DES( string strString )
  58. {
  59. DESCryptoServiceProvider DES = new DESCryptoServiceProvider();
  60.  
  61. DES.Key = Encoding.GetBytes( this.Key );
  62. DES.Mode = CipherMode.ECB;
  63. DES.Padding = PaddingMode.Zeros;
  64.  
  65. ICryptoTransform DESEncrypt = DES.CreateEncryptor();
  66.  
  67. byte[] Buffer = encoding.GetBytes(strString);
  68.  
  69. return Convert.ToBase64String(DESEncrypt.TransformFinalBlock(Buffer, , Buffer.Length));
  70. }
  71.  
  72. /**//// <SUMMARY>
  73. /// 解密
  74. /// </SUMMARY>
  75. /// <PARAM name="strString"></PARAM>
  76. /// <PARAM name="strKey"></PARAM>
  77. /// <RETURNS></RETURNS>
  78. public string Decrypt3DES( string strString )
  79. {
  80. DESCryptoServiceProvider DES = new DESCryptoServiceProvider ();
  81.  
  82. DES.Key = Encoding.UTF8.GetBytes( this.Key );
  83. DES.Mode = CipherMode.ECB;
  84. DES.Padding = PaddingMode.Zeros;
  85. ICryptoTransform DESDecrypt = DES.CreateDecryptor();
  86.  
  87. byte[] Buffer = Convert.FromBase64String(strString);
  88. return UTF8Encoding.UTF8.GetString( DESDecrypt.TransformFinalBlock(Buffer, , Buffer.Length) );
  89. }
  90. }

PHP和.NET通用的加密解密函数类,均使用3DES加解密 .的更多相关文章

  1. 3DES加解密 C语言

    3DES(或称为Triple DES),它相当于是对每个数据块应用三次DES加密算法.3*8字节密钥. 设Ek()和Dk()代表DES算法的加密和解密过程,K代表DES算法使用的密钥,P代表明文,C代 ...

  2. 3DES加解密类

    using System; using System.IO; using System.Security.Cryptography; using System.Text; namespace GT.C ...

  3. 3DES 加解密

    using System; using System.IO; using System.Security.Cryptography; using System.Text; namespace Comm ...

  4. PHP版3DES加解密类

    <?php /** * * PHP版3DES加解密类 * * 可与java的3DES(DESede)加密方式兼容 * * @Author:蓝凤(ilanfeng.com) * * @versio ...

  5. 3DES加解密【示例】

    代码 /**  * 3DES加解密  */ public class DESedeUtils {     private static final String ALGORITHM_MD5 = &qu ...

  6. java 与 c# 3des 加解密

    java 与 c# 3des 加解密   主要差异如下: 1.  对于待加密解密的数据,各自的填充模式不一样 C#的模式有:ANSIX923.ISO10126.None.PKCS7.Zero,而Jav ...

  7. C# 利用ICSharpCode.SharpZipLib实现在线加密压缩和解密解压缩 C# 文件压缩加解密

    C# 利用ICSharpCode.SharpZipLib实现在线加密压缩和解密解压缩   这里我们选用ICSharpCode.SharpZipLib这个类库来实现我们的需求. 下载地址:http:// ...

  8. 3DES 加解密,对长度不限制

    #region 3DES /// <summary> /// 3DES加密 /// </summary> /// <param name="strString& ...

  9. 加解密算法二:非对称加解密及RSA算法的实现

    加密和解密使用不同的密钥的一类加密算法.这类加密算法通常有两个密钥A和B,使用密钥A加密数据得到的密文,只有密钥B可以进行解密操作(即使密钥A也无法解密):相反,使用密钥B加密数据得到的密文,只有密钥 ...

随机推荐

  1. intel simd 资料

    http://www.cnblogs.com/zyl910/archive/2012/04/26/md00.html https://software.intel.com/sites/landingp ...

  2. 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 ...

  3. Spring AOP propagation七种属性值

    <!-- 配置事务通知 --> <tx:advice id="advice" transaction-manager="transactionManag ...

  4. noip2016酱油记day1

    真的是noip2016酱油记了. t1模拟,应该可以过. t2用了个简单的桶瞎搞,估计剩50pt了. t3直接不会写. 心好累... 考的分数肯定没去年高. 但不论如何,明天正常发挥就好. 正常发挥下 ...

  5. JavaScript ——闭包理解

    昨天晚上听别人谈起闭包这个东西,虽然对js有一点了解但却丝毫没有印象,今天也没什么事就顺便研究了一下满足好奇宝宝.整合于网上的理解,记录一下. 一.闭包的作用域 要理解闭包,首先必须理解Javascr ...

  6. 1.2 认识ASP.NET MVC项目结构

    1.开发环境 操作系统:xp.vista.windows 7.windows 8.windows server 2003|2008|2008R2|2012: 集成开发环境IDE: Vsiual Stu ...

  7. js获取随机数

    js 获取随机数方法如下: 1.Math.random()表示 结果为0-1间的一个随机数(包括0,不包括1) : 返回指定范围的随机数(m-n之间)的公式 Math.random()*(n-m)+m ...

  8. 11 个用来创建图形和图表的 JavaScript 工具包

    11个用来创建图形和图表的JavaScript工具包,方便开发者使用,喜欢的各位收藏一下吧! Aristochart DEMO|| Download Aristochart 是一个用来创建图形和图表的 ...

  9. HTML5自学笔记[ 3 ]表单验证反馈

    表单控件对象的validity对象可以设置或返回相关的验证信息(在invalid事件处理中获取validity对象): 属性valid:为true所有验证通过,为False至少有一种验证失败. 属性v ...

  10. (09)odoo工作流

    --------------修订时间14:54 2016-09-18 星期日21:59 2016-06-12 星期日10:06 2016-02-24 星期三17:14 2016-01-29 星期五-- ...