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

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

  •  
  •   lysS · 2019-12-02 22:15:57 +08:00 · 1743 次点击
    这是一个创建于 1577 天前的主题,其中的信息可能已经有所发展或是发生改变。
    <?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  
       2019-12-02 22:25:15 +08:00 via Android
    md5 是检验方法不是加密方法,并不可逆
    geelaw
        2
    geelaw  
       2019-12-02 22:27:25 +08:00 via iPhone
    如果你的算法里面没有随机数,那么任何人都可以完美复现你的算法,因为从来不假设别人看不见你的代码。
    eason1874
        3
    eason1874  
       2019-12-02 22:33:35 +08:00 via Android
    加盐就行了。

    md5($orderName . '这里搞一串字符当密钥')
    ryd994
        4
    ryd994  
       2019-12-02 22:38:12 +08:00 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  
    OP
       2019-12-02 23:00:57 +08:00
    @geelaw 加了个随机数那我也不知道是啥了。。
    yejinmo
        6
    yejinmo  
       2019-12-02 23:17:37 +08:00
    你这样算订单号可能会出现碰撞的
    agdhole
        7
    agdhole  
       2019-12-02 23:24:33 +08:00
    密码是门学科,不要闭门造车
    lysS
        8
    lysS  
    OP
       2019-12-03 09:29:40 +08:00 via Android
    @yejinmo 前面还要 13 位的时间戳
    Lostars
        9
    Lostars  
       2019-12-03 09:42:47 +08:00
    选非对称加密吧,用强度足够的密钥,毕竟数字货币钱包都在用。
    killerv
        10
    killerv  
       2019-12-03 11:11:16 +08:00
    md5 是 hash 不是 encrypt,而且你这样 mb_substr($md5Str, 0, 8) 是有很大几率碰撞的,在自己知识储备不健全的情况下,不要想当然的造轮子。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5481 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 08:12 · PVG 16:12 · LAX 01:12 · JFK 04:12
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.