PHP一致性hash
2024-09-07 06:16:20
PHP提供了两种比较两个变量的方法:
- 松散比较使用
== or !=
: 两个变量都具有“相同的值”。 - 严格比较
=== or !==
: 两个变量都具有“相同的类型和相同的值”。
类型杂耍
真实陈述
var_dump('0010e2' == '1e3'); # true
var_dump('0xABCdef' == ' 0xABCdef'); # true PHP 5.0 / false PHP 7.0
var_dump('0xABCdef' == ' 0xABCdef'); # true PHP 5.0 / false PHP 7.0
var_dump('0x01' == 1) # true PHP 5.0 / false PHP 7.0
var_dump('0x1234Ab' == '1193131');
'123' == 123
'123a' == 123
'abc' == 0
'' == 0 == false == NULL
'' == 0 # true
0 == false # true
false == NULL # true
NULL == '' # true
空语句
var_dump(sha1([])); # NULL
var_dump(md5([])); # NULL
魔术哈希-漏洞利用
如果计算的哈希仅以“ 0e”(或“ 0..0e”)开头,后跟数字,则PHP将把哈希视为浮点数。
Hash | “Magic” Number / String | Magic Hash-魔术哈希 |
---|---|---|
MD5 | 240610708 | 0e462097431906509019562988736854 |
SHA1 | 10932435112 | 0e07766915004133176347055865026311692244 |
SHA-224 | 10885164793773 | 0e281250946775200129471613219196999537878926740638594636 |
SHA-256 | 34250003024812 | 0e46289032038065916139621039085883773413820991920706299695051332 |
SHA-256 | TyNOQHUS | 0e66298694359207596086558843543959518835691168370379069085300385 |
<?php
var_dump(md5('240610708') == md5('QNKCDZO')); # bool(true)
var_dump(md5('aabg7XSs') == md5('aabC9RqS'));
var_dump(sha1('aaroZmOk') == sha1('aaK1STfY'));
var_dump(sha1('aaO8zKZF') == sha1('aa3OFF9m'));
?>
之前遇到的一个CTF实例:
最新文章
- 通过Http接口及SolrNet 两种方法基于Solr5.5.1 实现CURD
- CodeIgniter-Lottery - php ci 抽奖辅助函数
- java抽象-老师的生日-逻辑思维-有趣的面试题-遁地龙卷风
- 无需activity获得屏幕尺寸
- Ubuntu14.04 安装Gitlab
- IIS 部署 node.js ---- 基础安装部署
- angularJs内置指令63个
- angular 三目运算符 需要换色或style
- 理解Linux系统负荷
- spark Streaming的Receiver和Direct的优化对比
- Uva 208 - Firetruck
- Codeforces Gym 100425A Luggage Distribution 二分 数学
- 解决从VIM复制出来的代码格式错乱或对齐的问题
- ZUFE 1035 字符宽度编码(字符串)
- 3409: [Usaco2009 Oct]Barn Echoes 牛棚回声
- 云摘录︱Word2Vec 作者Tomas Mikolov 的三篇代表作解析
- Dagger2源码浅析
- gevent实现基于epoll和协程的服务器
- VXLAN, 一种叠加在L3网络上的L2网络
- IS-IS笔记