zoukankan      html  css  js  c++  java
  • PHP一致性hash

    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 / StringMagic 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实例:

  • 相关阅读:
    IO流(5)—缓冲流
    vue-element-admin 中文问题
    npm 下载慢解决方案
    fatal: unable to connect to github.com
    为什么有sessionStorage,localStorage等,还需要vuex
    vuex页面刷新数据丢失的解决办法
    Node中JWT的使用
    socket.io 实现长连接演示代码
    WebSocket 实现长连接演示代码
    jquery ajax上传文件
  • 原文地址:https://www.cnblogs.com/micr067/p/12623322.html
Copyright © 2011-2022 走看看