http://www.jb51.net/article/38018.htm

本篇文章是对一个简洁的PHP可逆加密函数进行了详细的分析介绍,需要的朋友参考下
 

很多时候我们需要对数据进行加密解密,比如有些数据需要保存到cookie中,但又不能被用户轻易得到这些数据,这时我们就需要加密这些数据保存到cookie中,等我们需要使用它们的时候再解密。

加密的过程如下:

复制代码代码如下:

// 加密数据并写到cookie里
$cookie_data = $this -> encrypt("nowamagic", $data);

$cookie = array(
    'name'   => '$data',
    'value'  => $cookie_data,
    'expire' => $user_expire,
    'domain' => '',
    'path'   => '/',
    'prefix' => ''
);
$this->input->set_cookie($cookie);

// 加密
public function encrypt($key, $plain_text) {  
    $plain_text = trim($plain_text);  
    $iv = substr(md5($key), 0,mcrypt_get_iv_size (MCRYPT_CAST_256,MCRYPT_MODE_CFB));  
    $c_t = mcrypt_cfb (MCRYPT_CAST_256, $key, $plain_text, MCRYPT_ENCRYPT, $iv);  
    return trim(chop(base64_encode($c_t)));  
}

使用的时候再解密:
if( isset($_COOKIE['data']) )
{
    //用cookie给session赋值
    $_SESSION['data'] = decrypt("nowamagic", $_COOKIE['data']);
}

function decrypt($key, $c_t) {  
    $c_t = trim(chop(base64_decode($c_t)));  
    $iv = substr(md5($key), 0,mcrypt_get_iv_size (MCRYPT_CAST_256,MCRYPT_MODE_CFB));  
    $p_t = mcrypt_cfb (MCRYPT_CAST_256, $key, $c_t, MCRYPT_DECRYPT, $iv);  
    return trim(chop($p_t));  
}

这里记录下这个可逆的加密函数的使用。

一个简洁的PHP可逆加密函数(分享)的更多相关文章

  1. 一个简洁通用的调用DLL函数的帮助类

    本次介绍一种调用dll函数的通用简洁的方法,消除了原来调用方式的重复与繁琐,使得我们调用dll函数的方式更加方便简洁.用过dll的人会发现c++中调用dll中的函数有点繁琐,调用过程是这样的:在加载d ...

  2. (原创)一个简洁通用的调用DLL函数的帮助类

    本次介绍一种调用dll函数的通用简洁的方法,消除了原来调用方式的重复与繁琐,使得我们调用dll函数的方式更加方便简洁.用过dll的人会发现c++中调用dll中的函数有点繁琐,调用过程是这样的:在加载d ...

  3. 网上搜集的一段php可逆加密函数

    php加密函数: function my_encrypt($data, $key='unun.in') { $char = $str = ''; $key = md5($key); $x = 0; $ ...

  4. 2个比较经典的PHP加密解密函数分享

    项目中有时我们需要使用PHP将特定的信息进行加密,也就是通过加密算法生成一个加密字符串,这个加密后的字符串可以通过解密算法进行解密,便于程序对解密后的信息进行处理. 最常见的应用在用户登录以及一些AP ...

  5. ZeroMQ接口函数之 :zmq_z85_encode – 使用Z85算法对一个二进制秘钥进行加密,输出可打印的文本

    ZeroMQ 官方地址 :http://api.zeromq.org/4-0:zmq-z85-encode zmq_z85_encode(3)          ØMQ Manual - ØMQ/4. ...

  6. 分享一个获取代理ip的python函数

    分享一个获取代理ip的python函数 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 #coding:utf-8 from bs4 import Beaut ...

  7. 常用的几个PHP加密函数

    1.前言 PHP加密方式分为单项散列加密,对称加密,非对称加密这几类. 像常用的MD5.hash.crypt.sha1这种就是单项散列加密,单项散列加密是不可逆的. 像URL编码.base64编码这种 ...

  8. 记一次ctf比赛解密题的解决(可逆加密基本破解之暴力破解)

    题目是这个样子的: code.txt的内容是这样: 有点吓人木?233333 其实解密之后是这样的: 找到一点安慰没? 好了,废话不多说.讲解一下思路吧. 我们知道base64加密是属于可逆加密的.简 ...

  9. (转)笔记320 SQLSERVER中的加密函数 2013-7-11

    1 --SQLSERVER中的加密函数 2013-7-11 2 ENCRYPTBYASYMKEY() --非对称密钥 3 ENCRYPTBYCERT() --证书加密 4 ENCRYPTBYKEY() ...

随机推荐

  1. 轮播插件、原生js编写,弄懂这个,基本上各种轮播都可以自己写了

    直接上代码了: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <t ...

  2. Django学习日记05_模板_模板语言

    Variables 在模板中,使用两个大括号包含变量的方式来使用变量: {{ name }} 该变量应该作为键值对中的键,在Context中能被查找到. Tags 模板中使用Tags来进行简单的逻辑: ...

  3. fiddler基本介绍

    1.Fiddler如何捕获HTTPS会话 点击Tools->Teleik Fiddler Option,勾选如下选项 点击"Yes" 后,就设置好了 2.fiddler的基本 ...

  4. HTML + CSS短标题(二,三,四文字长度)两端对齐的方式

    今天切图碰到了一个看似好弄,却并不好弄的文本两端对齐问题.如图1-1

  5. vue2.0 关于Vue实例的生命周期

    什么是生命周期 Vue实例有一个完整的生命周期,也就是从开始创建.初始化数据.编译模板.挂载Dom.渲染→更新→渲染.卸载等一系列过程,我们称这是Vue的生命周期.通俗说就是Vue实例从创建到销毁的过 ...

  6. Java中的String类能否被继承?为什么?

    不能被继承,因为String类有final修饰符,而final修饰的类是不能被继承的. Java对String类的定义: public final class String implements ja ...

  7. Windows和Linux下换行的不同

    因为测试IM会用到一些账号,于是写了一段代码从数据库里把需要的用户名.密码和手机号都一一取了出来,然后放到NotePad++中做进一步的处理. 取用户名.手机号和密码的代码如下: public cla ...

  8. NoSQL:Linux操作memcached

    一 NoSQL简介 NoSQL(NoSQL = Not Only SQL ),意即"不仅仅是SQL",泛指非关系型的数据库,随着互联网web2.0网站的兴起,传统的关系数据库在应付 ...

  9. 使用sysbench对mysql压力测试

    sysbench是一个模块化的.跨平台.多线程基准测试工具,主要用于评估测试各种不同系统参数下的数据库负载情况.关于这个项目的详细介绍请看:https://github.com/akopytov/sy ...

  10. 【SSD,FIO,SAS选择的一些小结】SSD,FIO,SAS选择的一些小结

    最近重新摊上了数据库,公司核心数据库天天 IO爆满,在研究用SAS 16*RAID10 ,还是RAID10 SSD*6, 还是FIO:no.1 principle, no raid-5 for dat ...