serialize

PHP之:序列化和反序列化-serialize()和unserialize()

邮差的信 提交于 2020-03-02 00:28:00
参考PHP在线手册( php.net ): http://php.net/manual/zh/function.serialize.php 1、 序列化 serialize() 将变量 序列化 — Generates a storable representation of a value — 产生一个可存储的值的表示 说明 serialize() 返回字符串,此字符串包含了表示 de style="margin: 0px; padding: 0px;" >valuede> 的字节流,可以存储于任何地方。 这有利于存储或传递 PHP 的值,同时不丢失其类型和结构。 想要将已序列化的字符串变回 PHP 的值,可使用 unserialize() 。 serialize() 可处理除了 resource 之外的任何类型。甚至可以 serialize() 那些包含了指向其自身引用的数组。你正 serialize() 的数组/对象中的引用也将被存储。 当序列化对象时,PHP 将试图在序列动作之前调用该对象的成员函数 __sleep()。这样就允许对象在被序列化之前做任何清除操作。类似的,当使用 unserialize() 恢复对象时, 将调用 __wakeup() 成员函数。 Note: 在 PHP 3 中,对象属性将被序列化,但是方法则会丢失。PHP 4 打破了此限制

PHP函数serialize()与unserialize()

让人想犯罪 __ 提交于 2020-03-01 22:48:02
serialize — Generates a storable representation of a value,产生一个可存储的值的表示。 unserialize — Creates a PHP value from a stored representation,从已存储的表示中创建 PHP 的值。 serialize()就是将PHP中的变量如对象(object),数组(array)等等的值序列化为字符串后存储起来.序列化的字符串我们可以存储在其他地方如数据库、Session、Cookie等,序列化的操作并不会丢失这些值的类型和结构。这样这些变量的数据就可以在PHP页面、甚至是不同PHP程序间传递了。 而unserialize()就是把序列化的字符串转换回PHP的值。 //$newsID是一个通过_POST获到的数组 $Id=serialize($newsId);//将数组中的数据序列化直接存到数据库的字段中 $sql = "insert into article_specialtopic (banner,title,articleIDs) values('$banner','$title','$Id')"; if (!mysqli_query($link,$sql)) { die('Error: ' . mysqli_error()); }else{ echo

php序列化(serialize)和反序列化(unserialize)函数

独自空忆成欢 提交于 2020-03-01 15:15:20
用法:serialize()、unserialize() 适用情境:serialize()返回字符串,此字符串包含了表示value的字节流,可以存储于任何地方。这有利于存储或传递 PHP 的值,同时不丢失其类型和结构。比较有用的地方就是将数据存入数据库或记录在文件中的时候. 可以对一般变量进行序列化,也可以对字典进行序列化。 <?php $array = array(); $array['keys'] = 'www'; $array['values']='11111'; $a = serialize($array); echo $a; unset($array); $a = unserialize($a); print_r($a); ?> 输出: a:2:{s:4:"keys";s:3:"www";s:6:"values";s:5:"11111";} Array ( [keys] => www [values] => 11111 ) 例题: bugku-Web flag.php 来源: https://www.cnblogs.com/RenoStudio/p/10355133.html

php中序列化与反序列化

本秂侑毒 提交于 2020-03-01 10:17:32
把复杂的数据类型压缩到一个字符串中 serialize() 把变量和它们的值编码成文本形式 unserialize() 恢复原先变量 eg: $stooges = array('Moe','Larry','Curly');$new = serialize($stooges);print_r($new);echo "<br />";print_r(unserialize($new)); 结果:a:3:{i:0;s:3:"Moe";i:1;s:5:"Larry";i:2;s:5:"Curly";} Array ( [0] => Moe [1] => Larry [2] => Curly ) 当把这些序列化的数据放在URL中在页面之间会传递时,需要对这些数据调用urlencode(),以确保在其中的URL元字符进行处理: $shopping = array('Poppy seed bagel' => 2,'Plain Bagel' =>1,'Lox' =>4);echo '<a href="next.php?cart='.urlencode(serialize($shopping)).'">next</a>'; margic_quotes_gpc和magic_quotes_runtime配置项的设置会影响传递到unserialize()中的数据。 如果magic_quotes

php中序列化与反序列化

杀马特。学长 韩版系。学妹 提交于 2020-03-01 10:11:16
转自: http://qing.weibo.com/tag/unserialize 把复杂的数据类型压缩到一个字符串中 serialize() 把变量和它们的值编码成文本形式 unserialize() 恢复原先变量 eg: $stooges = array('Moe','Larry','Curly');$new = serialize($stooges);print_r($new);echo "<br />";print_r(unserialize($new)); 结果: a:3:{i:0;s:3:"Moe";i:1;s:5:"Larry";i:2;s:5:"Curly";} Array ( [0] => Moe [1] => Larry [2] => Curly ) 当把这些序列化的数据放在URL中在页面之间会传递时,需要对这些数据调用urlencode(),以确保在其中的URL元字符进行处理: $shopping = array('Poppy seed bagel' => 2,'Plain Bagel' =>1,'Lox' =>4);echo '<a href="next.php?cart='.urlencode(serialize($shopping)).'">next</a>'; margic_quotes_gpc和magic_quotes

Java序列化之Externalizable

可紊 提交于 2020-02-29 00:28:34
1.需求 使用Externalizable实现序列化 2.Externalizable源码 public interface Externalizable extends java.io.Serializable { /** * The object implements the writeExternal method to save its contents * by calling the methods of DataOutput for its primitive values or * calling the writeObject method of ObjectOutput for objects, strings, * and arrays. * * @serialData Overriding methods should use this tag to describe * the data layout of this Externalizable object. * List the sequence of element types and, if possible, * relate the element to a public/protected field and/or * method of this Externalizable class.

深度剖析PHP序列化和反序列化

无人久伴 提交于 2020-02-23 11:54:31
序列化 序列化格式 在PHP中,序列化用于存储或传递 PHP 的值的过程中,同时不丢失其类型和结构。 序列化函数原型如下: string serialize ( mixed $value ) 先看下面的例子: class CC { public $data; private $pass; public function __construct($data, $pass) { $this->data = $data; $this->pass = $pass; } } $number = 34; $str = 'uusama'; $bool = true; $null = NULL; $arr = array('a' => 1, 'b' => 2); $cc = new CC('uu', true); var_dump(serialize($number)); var_dump(serialize($str)); var_dump(serialize($bool)); var_dump(serialize($null)); var_dump(serialize($arr)); var_dump(serialize($cc)); 输出结果为: string(5) "i:34;" string(13) "s:6:"uusama";" string(4) "b:1;" string(2)

ASP.NET MVC 4 中的JSON数据交互

寵の児 提交于 2020-02-01 10:02:09
前台Ajax请求很多时候需要从后台获取JSON格式数据,一般有以下方式: 拼接字符串 return Content("{\"id\":\"1\",\"name\":\"A\"}"); 为了严格符合Json数据格式,对双引号进行了转义。 使用JavaScriptSerialize.Serialize()方法将对象序列化为JSON格式的字符串 MSDN 例如我们有一个匿名对象: var tempObj=new { id=1, name="A" } 通过Serialize()方法,返回Json字符串: string jsonData=new JavaScriptSerializer().Serialize(tempObj); return Content(jsonData); 返回JsonResult类型 MSDN ASP.NET MVC 中,可以直接返回序列化的JSON对象: public JsonResult Index() { var tempObj=new { id=1, name="A" } return Json(tempObj, JsonRequestBehavior.AllowGet); } 需要设置参数‘JsonRequestBehavior.AllowGet’,允许GET请求。 前台处理返回的数据时,对于1,2种方法,需要使用JQuery提供的parseJSON方法

PHP反序列化漏洞

眉间皱痕 提交于 2020-01-26 06:57:47
前言 这几天一直在关注新管状病毒,从微博到各大公众号朋友圈了解感觉挺严重的看微博感觉特别严重看官方说法感觉还行那就取中间的吧 自己要会对这个东西要有理性的判断。关注了好两天所以耽搁了学习emmm 希望病毒早点过去吧! 反序列化漏洞 序列化和反序列化 为了有效地存储或传递数据,同时不丢失其类型和结构,经常需要利用序列化和反序列化函数对数据进行处理。 反序列化函数返回字符串,此字符串包含了表示值的字节流,可以存储于任何地方 反序列化函数对单一的已序列化的变量进行操作,将其转换成员来的值 这两个过程结合起来,可以轻松地存储和传输数据,使程序更具维护性 PHP语言中常用的序列化和反序列化函数有serialize、unserialize、json_encode、json_decode PHP序列化 1.serialize函数 serialize是序列化函数,PHP在序列化动作之前调用改对象的成员函数__sleep。这样就允许对象在被序列化之前做任何清除操作。’ (1) NULL的序列化 在PHP中,NULL被序列化为N。 <?php $str=NULL; $xl_str=serialize($str); print_r($xl_str); ?> 页面结果为: N; (2) Boolean型数据的序列化 Boolean型数据被序列化成b:<digit>。其中,<digit>表示0或1

公钥可搜索加密及其python实现

孤街浪徒 提交于 2020-01-11 08:03:21
目录 公钥可搜索加密 密码工具库 PEKSBoneh2004方案代码实现 Reference 公钥可搜索加密 公钥可搜索加密(Public-Key Encryption with Keyword Search,简称PEKS)定义如下: S e t u p ( 1 λ ) → ( s k , p k ) \mathsf{Setup}(1^\lambda) \to (\it{sk}, \it{pk}) S e t u p ( 1 λ ) → ( s k , p k ) :初始化算法,输入安全参数 1 λ 1^\lambda 1 λ ,获取私钥 s k \it{sk} s k 和公钥 p k \it{pk} p k 。 E n c ( p k , w ) → c \mathsf{Enc}(\it{pk}, w) \to c E n c ( p k , w ) → c :关键词加密算法,输入公钥和文档关键词 w w w ,输出文档关键词对应的密文 c c c 。 T d G e n ( s k , w ) → t d \mathsf{TdGen}(\it{sk}, w) \to \it{td} T d G e n ( s k , w ) → t d :陷门生成算法,输入私钥和搜索关键词 w w w ,输出搜索关键词对应的陷门 t d \it{td} t d 。 T e s t ( t d