博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHP使用DES进行加密和解密
阅读量:6161 次
发布时间:2019-06-21

本文共 1789 字,大约阅读时间需要 5 分钟。

DES是一种标准的数据加密算法,关于这个算法的详细介绍可以参考wiki和百度百科:

 

php中有一个扩展可以支持DES的加密算法,是:extension=php_mcrypt.dll

在配置文件中将这个扩展打开还不能够在windows环境下使用

需要将PHP文件夹下的 libmcrypt.dll 拷贝到系统的 system32 目录下,这是通过phpinfo可以查看到mcrypt表示这个模块可以正常试用了。

 下面是PHP中使用DES加密解密的一个例子:

1 //$input - stuff to decrypt 2  3     //$key - the secret key to use 4  5  6  7     function do_mencrypt($input, $key) 8  9     {10 11         $input = str_replace(""n", "", $input);12 13         $input = str_replace(""t", "", $input);14 15         $input = str_replace(""r", "", $input);16 17         $key = substr(md5($key), 0, 24);18 19         $td = mcrypt_module_open('tripledes', '', 'ecb', '');20 21         $iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_RAND);22 23         mcrypt_generic_init($td, $key, $iv);24 25         $encrypted_data = mcrypt_generic($td, $input);26 27         mcrypt_generic_deinit($td);28 29         mcrypt_module_close($td);30 31         return trim(chop(base64_encode($encrypted_data)));32 33     }34 35     36 37     //$input - stuff to decrypt38 39     //$key - the secret key to use40 41     42 43     function do_mdecrypt($input, $key)44 45     {46 47         $input = str_replace(""n", "", $input);48 49         $input = str_replace(""t", "", $input);50 51         $input = str_replace(""r", "", $input);52 53         $input = trim(chop(base64_decode($input)));54 55         $td = mcrypt_module_open('tripledes', '', 'ecb', '');56 57         $key = substr(md5($key), 0, 24);58 59         $iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_RAND);60 61         mcrypt_generic_init($td, $key, $iv);62 63         $decrypted_data = mdecrypt_generic($td, $input);64 65         mcrypt_generic_deinit($td);66 67         mcrypt_module_close($td);68 69         return trim(chop($decrypted_data));70 71 72     }

 

转载地址:http://dzefa.baihongyu.com/

你可能感兴趣的文章
[BTS] Could not find stored procedure 'mp_sap_check_tid'
查看>>
PLSQL DBMS_DDL.ALTER_COMPILE
查看>>
Activity生命周期
查看>>
高仿UC浏览器弹出菜单效果
查看>>
Ubuntu忘记密码,进不了系统的解决方法
查看>>
[原创]白盒测试技术思维导图
查看>>
<<Information Store and Management>> 读书笔记 之八
查看>>
Windows 8 开发之设置合约
查看>>
闲说HeartBeat心跳包和TCP协议的KeepAlive机制
查看>>
MoSQL
查看>>
Hibernate多对一外键单向关联(Annotation配置)
查看>>
《CLR via C#》读书笔记 之 方法
查看>>
设计模式:组合模式(Composite Pattern)
查看>>
ContentValues 和HashTable区别
查看>>
LogicalDOC 6.6.2 发布,文档管理系统
查看>>
给PowerShell脚本传递参数
查看>>
实战2——Hadoop的日志分析
查看>>
利用FIFO进行文件拷贝一例
查看>>
Ecshop安装过程中的的问题:cls_image::gd_version()和不支持JPEG
查看>>
resmgr:cpu quantum等待事件
查看>>