关于html:PHP时不时蹦出这串神秘字符有认识的吗

34次阅读

共计 1025 个字符,预计需要花费 3 分钟才能阅读完成。

有这样一个字符串,时不时在 PHP 程序内出现,当你把它贴到搜索引擎里搜寻时,命中率简直没有。怎么来的?怎么生成的?
今日咱们就来聊一聊 YTowOnt9。
深入学习
经常与编码解码打交道,对这样的字符串,你应该会有一个潜意识的意识。是不是特地像 base64encode 之后的内容。咱们先用一些随机数,看看 base64encode 之后的样子。
为了模仿 PHP 的状况,咱们没有使用 linux 体系下的 base64 货色,而是使用内置函数 base64_encode。
为了拿到固定长度的随机字符串,咱们使用了之前文章中推荐的形式,使用 openssl_random_pseudo_bytes 生成更好的随机数字节,而后使用 bin2hex 进行 16 进制化,所得便是纯字符串。
如果对下面的字符进行 base64decode 会失去什么呢?
echobase64_decode(‘YTowOnt9’);
命令行中履行之后失去如下输入。
a:0:{}
如果您使用过 PHP 内置的序列化函数应该对这个不陌生。咱们看一下序列化函数 serialize,在将对象序列化进行存储到缓存,甚至是到数据库内,你肯定见到过。
serialize 回来字符串,此字符串蕴含了示意 value 的字节俭,可能存储于任何中央。这有利于存储或传递 PHP 的值,一起不失落其类型和构造。
举一个简略的比方,比方具备不同数据类型的数组序列化:
$arrToPack=array(‘Loremipsumdolorsitamet’,8726348723,true);echoserialize($arrToPack);
输入内容:
a:3:{i:0;s:26:”Loremipsumdolorsitamet”;i:1;i:8726348723;i:2;b:1;}
可能看到序列化之后的内容,蕴含了数组的内容,构造,长度和值。反序列化的时候,就可能轻松实现。
揭晓答案
好了,后面的基础内容咱们都铺垫好了,上面把首要力量放在将这个字符串进行反序列化,看能失去一个什么。
var_dump(unserialize(base64_decode(“YTowOnt9”)));
后果输入:
array(0){}
原来是一个空数组。
写在最初
所以咱们当前再看到这样的编码字符串的时候,会在心中有一个意识,判断应该是从程序的那些阶段生成的,以及用来做什么的,这样调试起来会顺手的多。

正文完
 0