以下为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. 【官方方法】xcode7免证书真机调试

    [官方方法]xcode7免证书真机调试 步骤比较简单,我就简单总结一下. 1. 进入xcode,菜单栏选择xcode –> preferences (快捷键 command + ,)在Accou ...

  2. hiho1123_好配对

    题目 给定两个序列a和b,每个序列中可能含有重复的数字. 一个配对(i,j)是一个好配对当从第一个序列中选出一个数ai,再从第二个序列中选出一个数bj且满足ai>bj. 给出两个序列,问存在多少 ...

  3. <转> jsp页面向action传值的方法(最后一种简单)

    多的不说,直接上代码; struts.xml代码: <?xml version="1.0" encoding="UTF-8"?> <!DOCT ...

  4. MariaDB 加密特性及使用方法

    版权声明:本文由吴洪辉原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/193 来源:腾云阁 https://www.qclo ...

  5. 【图形学】我理解的伽马校正(Gamma Correction)

    http://blog.csdn.net/candycat1992/article/details/46228771/ 写在前面 我相信几乎所有做图像处理方面的人都听过伽马校正(Gamma Corre ...

  6. redis订阅发布

    一.简介 Pub/Sub 从字面上理解就是发布(Publish)与订阅(Subscribe),在Redis中,你可以设定对某一个key值进行消息发布及消息订阅,当一个key值上进行了消息发布后,所有订 ...

  7. js节点问题

    转载 http://dwt1220.blog.51cto.com/1028523/745402 本文出自 “dwt1220” 博客,请务必保留此出处http://dwt1220.blog.51cto. ...

  8. CSS3:不可思议的border属性&Web字体图标Font Awesome

     CSS3:不可思议的border属性 转载至——译文:不可思议的CSS border属性 原文:Magic of CSS border property Web字体图标Font Awesome 转载 ...

  9. ajax轮询session阻塞问题

    近来读了几篇关于ASP.NET下Session机制的文章,结合自己的实际应用,有点感想:        在ASP.NET的Session的默认机制下,对同一个SessionID下的用户请求ASP.NE ...

  10. HTML5自学笔记[ 2 ]新增表单控件和表单属性

    新增<input>属性type="email",自动验证,若输入不为邮箱,则不能提交. 新增<input>属性type="tel",在移 ...