代码很简单,如下:

  1. <?php
  2.  
  3. $key = 'very important data';
  4. function jiami($key, $str)
  5. {
  6. /* Open module, and create IV */
  7. $td = mcrypt_module_open('des', '', 'ecb', '');
  8. //$td = mcrypt_module_open(MCRYPT_DES, '', MCRYPT_MODE_CBC, '');
  9. //$td = mcrypt_module_open('des', '', 'cbc', '');
  10. $key = substr($key, 0, mcrypt_enc_get_key_size($td));
  11. $iv_size = mcrypt_enc_get_iv_size($td);
  12. $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
  13.  
  14. /* Initialize encryption handle */
  15. if (mcrypt_generic_init($td, $key, $iv) === -1)
  16. {
  17. return FALSE;
  18. }
  19.  
  20. /* Encrypt data */
  21. $c_t = mcrypt_generic($td, $str);
  22.  
  23. /* Clean up */
  24. mcrypt_generic_deinit($td);
  25. mcrypt_module_close($td);
  26.  
  27. return $c_t;
  28. }
  29.  
  30. function jiemi($key, $str)
  31. {
  32. /* Open module, and create IV */
  33. $td = mcrypt_module_open('des', '', 'ecb', '');
  34. //$td = mcrypt_module_open(MCRYPT_DES, '', MCRYPT_MODE_CBC, '');
  35. //$td = mcrypt_module_open('des', '', 'cbc', '');
  36. $key = substr($key, 0, mcrypt_enc_get_key_size($td));
  37. $iv_size = mcrypt_enc_get_iv_size($td);
  38. $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
  39.  
  40. /* Initialize encryption handle */
  41. if (mcrypt_generic_init($td, $key, $iv) === -1)
  42. {
  43. return FALSE;
  44. }
  45.  
  46. /* Reinitialize buffers for decryption */
  47. $p_t = mdecrypt_generic($td, $str);
  48.  
  49. /* Clean up */
  50. mcrypt_generic_deinit($td);
  51. mcrypt_module_close($td);
  52.  
  53. return trim($p_t);
  54. }
  55.  
  56. $str = 'hello world!';
  57. echo 'key:' . $key . '<br>';
  58. echo 'str:' . $str . '<br>';
  59.  
  60. $jiami = jiami($key, $str);
  61. echo '加密:' . $jiami . '<br>';
  62.  
  63. file_put_contents('jiamiqian.txt', $str);
  64. file_put_contents('jiamihou.txt', $jiami);
  65.  
  66. $jiemi = jiemi($key, $jiami);
  67. echo '解密:' . $jiemi . '<br>';

PHP DES 加解密的更多相关文章

  1. Node.js的DES加解密和MD5加密

    最基本的就是经常用的md5加密算法 代码如下 var  MD5=function (data) {        var _encrymd5 = require('crypto').createHas ...

  2. 一个java的DES加解密类转换成C#

    原文:一个java的DES加解密类转换成C# 一个java的des加密解密代码如下: //package com.visionsky.util; import java.security.*; //i ...

  3. DES加解密算法Qt实现

      算法解密qt加密table64bit [声明] (1) 本文源码 大部分源码来自:DES算法代码.在此基础上,利用Qt编程进行了改写,实现了DES加解密算法,并添加了文件加解密功能.在此对署名为b ...

  4. Java Des加解密方法(c#加密Java解密)

    最近我们用Java把一个用.net编写的老系统重新做了翻版,但是登录还是用.net的登录.这样就会遇到一个比较棘手的问题,我们登录用的cookie信息都是.net用des加密的,但我们不得不用Java ...

  5. DES加解密 cbc模式 的简单讲解 && C++用openssl库来实现的注意事项

    DES cbc是基于数据块加密的.数据块的长度为8字节64bit.以数据块为单位循环加密,再拼接.每个数据块加密的秘钥一样,IV向量不同.第一个数据快所需的IV向量,需要我们提供,从第二个数据块开始, ...

  6. JavaScript与C#互通的DES加解密算法

    原文地址:传送门 本文提供了一个能使JavaScript与C#互通的DES加解密算法的实现,在前台页面中用JavaScript版本的DES算法将数据加密之后,传到服务器端,在服务器端可用C#版本的DE ...

  7. PHP 基础篇 - PHP 中 DES 加解密详解

    一.简介 DES 是对称性加密里面常见一种,全称为 Data Encryption Standard,即数据加密标准,是一种使用密钥加密的块算法.密钥长度是64位(bit),超过位数密钥被忽略.所谓对 ...

  8. Java拓展教程:文件DES加解密

    Java拓展教程:文件加解密 Java中的加密解密技术 加密技术根据一般可以分为对称加密技术和非对称加密技术.对称加密技术属于传统的加密技术,它的加密和解密的密钥是相同的,它的优点是:运算速度快,加密 ...

  9. javascript JS CryptoJS DES加解密CBC模式与C#DES加解密相同互通

    我们只知道不同的语言解密要相互通用,就需要遵循相同的加密方式,然而在具体做技术预研的时候,就发现会遇到很多问题,网上找的资料也是比较片面,所以我踩了坑,并且把解决方案和相关资料源码提供出来,给需要的朋 ...

  10. JavaScript与C#互通的DES加解密算法的实现(转)

    本文提供了一个能使JavaScript与C#互通的DES加解密算法的实现,在前台页面中用JavaScript版本的DES算法将数据加密之后,传到服务器端,在服务器端可用C#版本的DES解密算法将其解密 ...

随机推荐

  1. Probit回归模型

    Probit模型也是一种广义的线性模型,当因变量为分类变量时,有四种常用的分析模型: 1.线性概率模型(LPM)2.Logistic模型3.Probit模型4.对数线性模型 和Logistic回归一样 ...

  2. WPF CAL 计算器

    界面最终结果: 下载地址:https://skydrive.live.com/redir?resid=25C3908AA2038BDB!148&authkey=!ADR71XdB04LipYE

  3. mysql 处理查询请求过程

    需要搞清楚查询为什么会慢,就要搞清楚mysql处理查询请求的过程: 1.客户端发送SQL请求给服务器 2.服务器检查是否可以在查询缓存中命中该SQL   查询缓存对SQL性能的影响. 1.需要对缓存加 ...

  4. iOS开发网络篇—数据安全

    iOS开发网络篇—数据安全 一.简单说明 1.说明 在开发应用的时候,数据的安全性至关重要,而仅仅用POST请求提交用户的隐私数据,还是不能完全解决安全问题. 如:可以利用软件(比如Charles)设 ...

  5. JavaWeb chapter3 Servlet处理HTTP响应

    1.  设置响应状态行 HTTP状态码:1XX,信息性代码: 2XX,客户请求成功: 3XX,用于已经移走的资源文件,指示新的地址: 4XX,由客户端引发的错误: 5XX,由服务器端引发的错误. 2. ...

  6. IT公司100题-27-跳台阶问题

    问题描述: 一个台阶总共有n阶,一次可以跳1级或者2级.求总共有多少种跳法.   分析: 用f(n)表示n阶台阶总共有多少种跳法.n阶台阶,第一可以选择跳1阶或者2阶,则f(n) = f(n-1) + ...

  7. Invalid byte 3 of 3-byte UTF-8 sequence

    用maven编译,tomcat启动时报错:IOException parsing XML document from class path resource [applicationContext.x ...

  8. 人脸识别SDK小结

    Face++人脸识别 进入官网 Face++ 致力于研发世界最好的人脸技术,提供免费的API和SDK供企业和开发者调用,更有灵活的定制化服务满足不同需求.已有多家公司使用Face++技术服务,完成包括 ...

  9. equals 与 ==

    Object类中,方法equals():boolean equals(Object obj) {   return this==obj;} == 比较两个变量的值是否相等,对于基本类型,==直接比较变 ...

  10. 数据结构《16》----自动补齐实现《一》----Trie 树

    1. 简述 Trie 树是一种高效的字符串查找的数据结构.可用于搜索引擎中词频统计,自动补齐等. 在一个Trie 树中插入.查找某个单词的时间复杂度是 O(len), len是单词的长度. 如果采用平 ...