php mcrypt加密实例
<?php
//当前mcrypt支持的加密模型
$modes_list = mcrypt_list_modes();
// Array
// (
// [0] => cbc
// [1] => cfb
// [2] => ctr
// [3] => ecb
// [4] => ncfb
// [5] => nofb
// [6] => ofb
// [7] => stream
// )
//当前mcrypt支持的算法
$algorithms_list = mcrypt_list_algorithms();
// Array
// (
// [0] => cast-128
// [1] => gost
// [2] => rijndael-128
// [3] => twofish
// [4] => cast-256
// [5] => loki97
// [6] => rijndael-192
// [7] => saferplus
// [8] => wake
// [9] => blowfish-compat
// [10] => des
// [11] => rijndael-256
// [12] => serpent
// [13] => xtea
// [14] => blowfish
// [15] => enigma
// [16] => rc2
// [17] => tripledes
// [18] => arcfour
// )
$key = "this is secret key";
$input = "Let us meet at 9 o'clock at the secret place"; //加密过程
$td = mcrypt_module_open('tripledes','','ecb','');//设置加密模式和算法
$iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td),MCRYPT_RAND);// 创建iv(初始化向量)
mcrypt_generic_init($td,$key,$iv);// 根据密钥和iv初始化$td,完成内存分配等初始化工作
$encrypted_data = mcrypt_generic($td,$input);// 进行加密
mcrypt_generic_deinit($td);// 反初始化$td,释放资源
mcrypt_module_close($td); //解密过程
$td = mcrypt_module_open('tripledes','','ecb','');
$iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td),MCRYPT_RAND);
mcrypt_generic_init($td,$key,$iv);
$decrypted_data = mdecrypt_generic($td,$encrypted_data);
mcrypt_generic_deinit($td);
mcrypt_module_close($td); /**
* 一个简单功能的加密解密类
* @author LHL 2016.08.03
*/
class Mcrypt
{
/**
* 获取key
*/
private static function getKey(){
return md5('exampleKey');
}
/**
* 加密方法
*/
public static function encrypt($value){
$td = mcrypt_module_open('tripledes','','ecb','');
$iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td),MCRYPT_DEV_RANDOM);
$key = substr(self::getKey(),0,mcrypt_enc_get_key_size($td));
mcrypt_generic_init($td,$key,$iv);
$ret = base64_encode(mcrypt_generic($td,$value));
mcrypt_generic_deinit($td);
mcrypt_module_close($td);
return $ret;
}
/**
* 解密方法
*/
public static function dencrypt($value){
$td = mcrypt_module_open('tripledes','','ecb','');
$iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td),MCRYPT_DEV_RANDOM);
$key = substr(self::getKey(), 0, mcrypt_enc_get_key_size($td));
mcrypt_generic_init($td, $key, $iv);
$ret = trim(mdecrypt_generic($td, base64_decode($value))) ;
mcrypt_generic_deinit($td);
mcrypt_module_close($td);
return $ret;
}
}
$sec = Mcrypt::encrypt('abc');
echo Mcrypt::dencrypt($sec);
php mcrypt加密实例的更多相关文章
- [AS3]as3用ByteArray来对SWF文件编码加密实例参考
[AS3]as3用ByteArray来对SWF文件编码加密实例参考,简单来说,就是将 swf 以 binary 的方式读入,并对 ByteArray 做些改变,再重新存成 swf 档.这个作业当然也可 ...
- 使用php mcrypt加密解密
数字签名:对数据和私钥进行hash运算得到消息摘要,连同消息本身一块发给客户端.数据签名强调客户端接收到的数据是来自特定服务端,服务端具有对数据不可否认性.客户端通过确认此次签名的正确性来判断拿到的消 ...
- Python爬虫教程-16-破解js加密实例(有道在线翻译)
python爬虫教程-16-破解js加密实例(有道在线翻译) 在爬虫爬取网站的时候,经常遇到一些反爬虫技术,比如: 加cookie,身份验证UserAgent 图形验证,还有很难破解的滑动验证 js签 ...
- PHP的Mcrypt加密扩展知识了解
今天我们来学习的是 PHP 中的一个过时的扩展 Mcrypt .在 PHP7 之前,这个扩展是随 PHP 安装包一起内置发布的,但是现在新版本的 PHP 中已经没有了,需要使用这个扩展的话我们需要单独 ...
- php7废弃mcrypt加密,使用openssl替换
概要: php从7.0升级到7.1废弃了一个扩展,即mcrypt扩展,虽然安装上扩展也能正常使用,但是会发出警告,告诉我们mcrypt相关方法已经被废弃,到了7.2,已经被移除,因此不建议继续使用. ...
- ASP.NET使用jQuery AJAX实现MD5加密实例
一个asp.net ajax例子,使用jquery,实现md5加密.在.NET 4.0,Visual Studio 2010上成功运行. 效果体验:http://tool.keleyi.com/t/m ...
- PHP mcrypt加密扩展使用总结
在开发中,很多时候我们在前后端交互中需要对一些敏感数据进行一定的加密.PHP中有提供了mcrypt的这样一个加密扩展实现对数据的加密解密. 一.mcrypt扩展的安装 在低版本的PHP中需要在配置文件 ...
- mcrypt加密以及解密过程
Mcrypt库支持20多种加密算法和8种加密模式,具体可以通过函数mcrypt_list_algorithms()和mcrypt_list_modes()来显示 Mcrypt扩展库可以实现加密解密功能 ...
- 小程序 mcrypt加密拓展在php7.1 废弃 使用openssl替代方案
原加密方法 使用mcrypt //获得16位随机字符串,填充到明文之前 $random = $this->getRandomStr(); $text = $random . pack(" ...
随机推荐
- ListView+EditText使用遇到的坑
最近项目中某功能需要ListView嵌套EditText来实现,使用过程中遇到一些问题: 1.点击弹出编辑框,edittext会失去焦点. 解决焦点丢失的问题 解决思路:软键盘弹出的时候会重新绘制界面 ...
- L1-3. 情人节【求第2个、第14个人的名字,设置计数器并标记一下即可】
L1-3. 情人节 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 以上是朋友圈中一奇葩贴:“2月14情人节了,我决定造福大家. ...
- Widows下利用OpenSSL生成证书
1.下载OpenSSL的windows版本 32位:openssl-1.0.2a-i386-win32.zip 64位:openssl-1.0.2a-x64_86-win64.zip 下载之后解压即可 ...
- OS | Process
linux多进程 1. fork()创建进程,创建一份父进程的拷贝:在父进程中返回的是子进程id,在子进程中返回的是0:失败时返回-1: 2. fork()经常和exec()结合,exec() 覆盖了 ...
- 一分钟学会Spring Boot多环境配置切换
一. 问题由来 开发环境.测试环境.生产环境--------我们的软件在不同的环境中,系统参数和配置可能会不一样,比如数据源配置.日志文件配置.以及一些软件运行过程中的基本配置,那每次我们将软件部署到 ...
- 在eclipse使用map reduce编写word count程序生成jar包并在虚拟机运行的步骤
---恢复内容开始--- 1.首先准备一个需要统计的单词文件 word.txt,我们的单词是以空格分开的,统计时按照空格分隔即可 hello hadoop hello yarnhello zookee ...
- JNA 相关问题
JNA 相关问题 结构体对齐问题 要注意调用的c库字段对齐方式的相关设置. #pragma pack (push,1) #pragma pack(pop) jna中提供了4种对齐方式: /** Use ...
- Html中的 http-equiv="X-UA-Compatible" 解释
1.X-UA-Compatible X-UA-Compatible是自从IE8新加的一个设置,对于IE8以下的浏览器是不识别的. 通过在meta中设置X-UA-Compatible的值,可以指定网页的 ...
- 【Protocol Buffers】grpc默认使用的Google 开源的一套成熟的结构数据序列化机制
grpc默认使用的Google 开源的一套成熟的结构数据序列化机制 参考地址:https://blog.csdn.net/shensky711/article/details/69696392 参考地 ...
- 手动安装pip
apt-get instal pip 成功之后,有根据pip的提示,进行了升级,升级之后,pip就出问题了 为了解决上面问题,手动安装pip,依次执行下面命令 1 2 3 4 5 [root@min ...