首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
lysS
V2EX  ›  问与答

小弟这样加密可以解吗???

  •  
  •   lysS · 56 天前 · 1039 次点击
    这是一个创建于 56 天前的主题,其中的信息可能已经有所发展或是发生改变。
    <?php
    header('Content-type:text/html;charset=utf-8');
    $order_name='卧槽';
    $orderName=mb_substr(md5(mb_substr(md5(mb_substr(md5($order_name),0,15)),3,19)),0,8);
    
    echo $orderName; //0e907f4a
    ?>
    

    不太懂加密这方面的东西,假如知道了足够多的$oredr 和$order_my 之间的对应关系,能不能解出来喃?? 当然对方已经知道$order_name 的值,相同的$order_name 出来的值是一样的,所以他们能够猜到用来 md5 之类的方法。。

    10 回复  |  直到 2019-12-03 11:11:16 +08:00
    mouyase
        1
    mouyase   56 天前 via Android
    md5 是检验方法不是加密方法,并不可逆
    geelaw
        2
    geelaw   56 天前 via iPhone
    如果你的算法里面没有随机数,那么任何人都可以完美复现你的算法,因为从来不假设别人看不见你的代码。
    eason1874
        3
    eason1874   56 天前 via Android
    加盐就行了。

    md5($orderName . '这里搞一串字符当密钥')
    ryd994
        4
    ryd994   56 天前 via Android
    加盐也不行。md5 是已经被宣布不安全的算法。md5 从设计之初就是散列算法,目的是快速校验或打散数据。从来就不是按密码保存算法设计的。
    保存密码,你需要的是 kdf: https://zh.wikipedia.org/wiki/%E5%AF%86%E9%92%A5%E6%B4%BE%E7%94%9F%E5%87%BD%E6%95%B0
    lysS
        5
    lysS   56 天前
    @geelaw 加了个随机数那我也不知道是啥了。。
    yejinmo
        6
    yejinmo   56 天前
    你这样算订单号可能会出现碰撞的
    agdhole
        7
    agdhole   56 天前
    密码是门学科,不要闭门造车
    lysS
        8
    lysS   55 天前 via Android
    @yejinmo 前面还要 13 位的时间戳
    Lostars
        9
    Lostars   55 天前
    选非对称加密吧,用强度足够的密钥,毕竟数字货币钱包都在用。
    killerv
        10
    killerv   55 天前
    md5 是 hash 不是 encrypt,而且你这样 mb_substr($md5Str, 0, 8) 是有很大几率碰撞的,在自己知识储备不健全的情况下,不要想当然的造轮子。
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   927 人在线   最高记录 5168   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 36ms · UTC 18:51 · PVG 02:51 · LAX 10:51 · JFK 13:51
    ♥ Do have faith in what you're doing.