一个简洁的PHP可逆加密函数(分享)

一个简洁的PHP可逆加密函数(分享)

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));  
}  

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/113752.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 2022年Redis最新面试题第6篇 – Redis淘汰策略「建议收藏」

    2022年Redis最新面试题第6篇 – Redis淘汰策略「建议收藏」Redis过期键的删除策略?出现概率:★★★★Redis过期键的删除策略是:定期删除+惰性删除。1)、关于定期删除,Redis默认会每隔100ms就随机选取一些已经过期了的key,检查其是否过期,如果已经过期就删除。不过假设Redis里放了100w个key,而且都设置了过期时间,你每隔几百毫秒,就检查100w个key,那Redis基本上就卡死了,cpu负载也会很高的,基本都消耗在检查过期key上了。注意,这里可不是每隔100ms就遍历所有的设置过期时间的key,那样就是一场性能上的灾难。实际情况是每

    2022年10月21日
    3
  • android开发笔记之异步ThreadPoolExecutor

    android开发笔记之异步ThreadPoolExecutorandroid异步开发android异步开发,主要有1.Thread+Handler进行异步处理2.继承Thread类和实现Runnable接口3.AsyncTask类4.RxJava5.AsyncQueryHandler但是事实上AsyncTask是有缺点的。syncTaskisdesignedtobeahelperclassaroundThreadandH…

    2022年7月13日
    14
  • CSS使图片变灰

    为了悼念,各大网站都纷纷将自己的站点颜色调灰,就连图片也一样,到底如何实现的呢,请看下面的代码。〈imgsrc="http://hovertree.com/hvtimg/201512/f7

    2021年12月25日
    48
  • Pycharm界面的子窗口不见了,怎么办?「建议收藏」

    Pycharm界面的子窗口不见了,怎么办?「建议收藏」Pycharm界面的子窗口不见了 pycharm程序界面一般有很多子窗口,如图1所示。图1 Pycharm子窗口 如果你发现某些子窗口不见了,图2是最过分的情形,无须担心。图2 Pycharm界面的子窗口不见了 打开项目视图子窗口 选择菜单“View>ToolWindows>Project”能够打开左侧的项目视图子窗口。如图4所

    2022年8月26日
    8
  • JavaWeb项目org.apache.jasper.JasperException: 解决方法

    descriptionTheserverencounteredaninternalerror()thatpreventeditfromfulfillingthisrequest.exceptionorg.apache.jasper.JasperException:/PCManage/controlsecletthenews.jsp(303,12)ThefunctiongetNidmustbeusedwithaprefixwhenadefaultname

    2022年4月8日
    246

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号