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);
时间: 2024-12-20 10:28:48

php mcrypt加密实例的相关文章

[AS3]as3用ByteArray来对SWF文件编码加密实例参考

[AS3]as3用ByteArray来对SWF文件编码加密实例参考,简单来说,就是将 swf 以 binary 的方式读入,并对 ByteArray 做些改变,再重新存成 swf 档.这个作业当然也可能应该是由 Server 进行 步骤一,随便建立一个 swf 当作要被加密的内容档案,怎么做不管,假设档名 asset.swf. 步骤二,做一个用来进行加密工作的 flash: var ul:URLLoader = new URLLoader(); ul.dataFormat = URLLoader

使用php mcrypt加密解密

数字签名:对数据和私钥进行hash运算得到消息摘要,连同消息本身一块发给客户端.数据签名强调客户端接收到的数据是来自特定服务端,服务端具有对数据不可否认性.客户端通过确认此次签名的正确性来判断拿到的消息是否来自特定服务端. 数据加密:对数据进行加密,有对称加密和非对称加密两种.PHP中常使用 mcrypt和openssl扩展对数据进行加解密.mcrypt常用在对称加密中,openssl常用在非对称加密中.另外在编程中还经常使用到一种单项散列加密算法,比如MD5,HASH,SHA1,passwor

android MD5和SHA1加密实例

//找了好久,网上的很多加密结果不对,最后百度加我自己修改成功解决问题 public class MD5 { private static String key = "a6U&1$Ip[Jr/sed]Rfvn=O>Mz+}lXN*%-gLcGD|0"; //MD5加密实例 public static String getMD5(String str) throws NoSuchAlgorithmException { MessageDigest md5 = null; t

PHP mcrypt加密扩展使用总结

在开发中,很多时候我们在前后端交互中需要对一些敏感数据进行一定的加密.PHP中有提供了mcrypt的这样一个加密扩展实现对数据的加密解密. 一.mcrypt扩展的安装 在低版本的PHP中需要在配置文件php.ini中显式添加对扩展的引用,同时要保证扩展引用目录中有相应的扩展文件:在高版本的PHP中,Windows下似乎默认开启了mcrypt的扩展,既不需要在配置文件php.ini中做配置,在扩展引用目录中也没有看到相应的扩展文件,在linux下则需要安装对应的mcrypt.so扩展. mcryp

mcrypt加密以及解密过程

Mcrypt库支持20多种加密算法和8种加密模式,具体可以通过函数mcrypt_list_algorithms()和mcrypt_list_modes()来显示 Mcrypt扩展库可以实现加密解密功能,就是既能将明文加密,也可以密文还原. 1.PHP加密扩展库Mcrypt安装在标准的PHP安装过程中并没有把Mrcypt安装上,但PHP的主目录下包含了libmcrypt.dll和libmhash.dll文件 (libmhash.dll是Mhash扩展库,这里可以一起装上).首先,将这两个文件复制到

php session cookie加密实例

session cookie之间的差别在于session可以方便的存取多种数据类型,而cookie只支持字符串类型,同时对于一些安全性比较高的数据,cookie需要进行格式化与加密存储,而session存储在服务端则安全性较高. <?php session_start(); //假设用户登录成功获得了以下用户数据 $userinfo = array( 'uid' => 10000, 'name' => 'spark', 'email' => '[email protected]',

用C#实现MD5的加密(转载)

方法一 首先,先简单介绍一下MD5 MD5的全称是message-digest algorithm 5(信息-摘要算法,在90年代初由mit laboratory for computer science和rsa data security inc的ronald l. rivest开发出来, 经md2.md3和md4发展而来. MD5具有很好的安全性(因为它具有不可逆的特征,加过密的密文经过解密后和加密前的东东相同的可能性极小) 引用 using System.Security.Cryptogr

CTF中那些脑洞大开的编码和加密

0x00 前言 正文开始之前先闲扯几句吧,玩CTF的小伙伴也许会遇到类似这样的问题:表哥,你知道这是什么加密吗?其实CTF中脑洞密码题(非现代加密方式)一般都是各种古典密码的变形,一般出题者会对密文进行一些处理,但是会给留一些线索,所以写此文的目的是想给小伙伴做题时给一些参考,当然常在CTF里出现的编码也可以了解一下.本来是想尽快写出参考的文章,无奈期间被各种事情耽搁导致文章断断续续写了2个月,文章肯定有许多没有提及到,欢迎小伙伴补充,总之,希望对小伙伴们有帮助吧! 0x01 目录 1 2 3

iOS开发 - 网络数据安全加密(MD5)

提交用户的隐私数据 一定要使用POST请求提交用户的隐私数据GET请求的所有参数都直接暴露在URL中请求的URL一般会记录在服务器的访问日志中服务器的访问日志是黑客攻击的重点对象之一 用户的隐私数据登录密码银行账号- - 数据安全 仅仅用POST请求提交用户的隐私数据,还是不能完全解决安全问题可以利用软件(比如Charles)设置代理服务器,拦截查看手机的请求数据因此:提交用户的隐私数据时,一定不要明文提交,要加密处理后再提交 常见的加密算法 <code class="hljs tex&q