代码很简单,如下:

<?php

$key = 'very important data';
function jiami($key, $str)
{
/* Open module, and create IV */
$td = mcrypt_module_open('des', '', 'ecb', '');
//$td = mcrypt_module_open(MCRYPT_DES, '', MCRYPT_MODE_CBC, '');
//$td = mcrypt_module_open('des', '', 'cbc', '');
$key = substr($key, 0, mcrypt_enc_get_key_size($td));
$iv_size = mcrypt_enc_get_iv_size($td);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND); /* Initialize encryption handle */
if (mcrypt_generic_init($td, $key, $iv) === -1)
{
return FALSE;
} /* Encrypt data */
$c_t = mcrypt_generic($td, $str); /* Clean up */
mcrypt_generic_deinit($td);
mcrypt_module_close($td); return $c_t;
} function jiemi($key, $str)
{
/* Open module, and create IV */
$td = mcrypt_module_open('des', '', 'ecb', '');
//$td = mcrypt_module_open(MCRYPT_DES, '', MCRYPT_MODE_CBC, '');
//$td = mcrypt_module_open('des', '', 'cbc', '');
$key = substr($key, 0, mcrypt_enc_get_key_size($td));
$iv_size = mcrypt_enc_get_iv_size($td);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND); /* Initialize encryption handle */
if (mcrypt_generic_init($td, $key, $iv) === -1)
{
return FALSE;
} /* Reinitialize buffers for decryption */
$p_t = mdecrypt_generic($td, $str); /* Clean up */
mcrypt_generic_deinit($td);
mcrypt_module_close($td); return trim($p_t);
} $str = 'hello world!';
echo 'key:' . $key . '<br>';
echo 'str:' . $str . '<br>'; $jiami = jiami($key, $str);
echo '加密:' . $jiami . '<br>'; file_put_contents('jiamiqian.txt', $str);
file_put_contents('jiamihou.txt', $jiami); $jiemi = jiemi($key, $jiami);
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. HTML 认识

    1.1认识什么是纯文本文件 Window 自带的一个软件,叫做记事本,记事本保存的格式就是TXT,就是英文text的缩写,术语上称呼为"纯文本文件". 注意:    TXT文件,只 ...

  2. css 浮动

    1. 浮动 浮动是css的布局功能,在CSS中,包括div在内的任何元素都可以浮动的方式显示.它能够改变页面中对象的前后流动顺序.浮动元素会脱离文档流,不占据空间.浮动元素可以左右移动,直到碰到包含它 ...

  3. $.getJSON( )的使用方法简介

    JSON(JavaScript Object Notation)即JavaScript对象表示法,是一种轻量级的数据交换格式.它非常便于编程人员对数据的处理,也便于机器对数据的解析和生成,应用非常广泛 ...

  4. Lua知识备忘录

    最近对Lua很感兴趣,以下是本阶段学习的总结,包含三部分,一部分是基础语法,一部分是扩展和解释器嵌入,最后一部分是Lua小练习. 知识涉及:Lua语言编程基础:Lua&C++:Lua扩展.嵌入 ...

  5. 介绍开源的.net通信框架NetworkComms框架之七 数据加密通信

    原文网址: http://www.cnblogs.com/csdev Networkcomms 是一款C# 语言编写的TCP/UDP通信框架  作者是英国人  以前是收费的 目前作者已经开源  许可是 ...

  6. win server2008R2安装framework1.1后,在应用池中不能编辑选择framework1.1的解决办法

    C:\Users\Administrator>mklink /d "c:/Windows/Microsoft.NET/Framework64/v1.1.4322" " ...

  7. webix源码阅读

    最近在用webix,需要一个类似九宫格的监控界面.自带的控件里没有,于是萌生出做一个Custom Component的需求.不过webix关于自定义控件的文档比较少,官方只有一篇<Creatin ...

  8. 为什么使用 Bootstrap?

    为什么使用 Bootstrap? 移动设备优先:自 Bootstrap 3 起,框架包含了贯穿于整个库的移动设备优先的样式. 浏览器支持:所有的主流浏览器都支持 Bootstrap.      容易上 ...

  9. 跑马灯标记marquee

    常见属性: direction:滚动方向(left默)/right/up/down; behavior:滚动方式(scroll默)/slide/alternate来回弹动: width.height. ...

  10. 记录一些容易忘记的属性 -- UINavigationController

    //设置导航栏的风格    self.navigationController.navigationBar.barStyle = UIBarStyleDefault;    //设置导航栏是否透明 N ...