怎么更新密码加密算法? 比如 原策略是 如果密码是 abc 保存时改为 abc123 然后再 MD5 保存到数据库 , 现在被知道了 , 我想改算法 把 abc 改成 a1ab2bc3c 然后再 MD5 保存要怎么做? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
reloop
V2EX    PHP

怎么更新密码加密算法? 比如 原策略是 如果密码是 abc 保存时改为 abc123 然后再 MD5 保存到数据库 , 现在被知道了 , 我想改算法 把 abc 改成 a1ab2bc3c 然后再 MD5 保存要怎么做?

  •  
  •   reloop 2013 年 9 月 1 日 6747 次点击
    这是一个创建于 4618 天前的主题,其中的信息可能已经有所发展或是发生改变。
    20 条回复    1970-01-01 08:00:00 +08:00
    swulling
        1
    swulling  
       2013 年 9 月 1 日   1
    各种语言都有那么多现成的安全的密码策略不用,为啥要自造呢,自造还选md5

    选一个现成的,对密文二次加密就好了。而你这个思路相当于要把md5逆向破解....
    anheiyouxia
        2
    anheiyouxia  
       2013 年 9 月 1 日   2
    我只想到一个笨方法,保留原来的加密算法,把用户输入的密码按照新算法换算成md5值进行对比,如果是错误的,那么就再按照原来的算法进行换算对比,如果值正确,那么再把这个旧的MD5用新的替换到数据库。

    因为现在md5暂时是不可逆的,所以要主动操作改变的话.......你这个情况,就我的了解,是没办法的了.....
    takwai
        3
    takwai  
       2013 年 9 月 1 日 via Android   1
    目前看来只有二楼方法可行了。

    楼主怎么不用HMACMD5或者HMACSHA1这种呢?
    reloop
        4
    reloop  
    OP
       2013 年 9 月 1 日
    @swulling
    @anheiyouxia
    @takwai
    多谢各位!!
    no2x
        5
    no2x  
       2013 年 9 月 1 日
    我的建议

    1。将 旧MD5加密的密码 通过 + 789 再 MD5 一次,保存,这样保证数据库里的数据更新了先。

    2。用户新登录或修改密码,则,MD5( MD5( 密码+123)+789 ) 校验后,用 MD5( 密码 + 随机码 ) 和 随机码 一起保存到新数据库。

    3。从此使用 密码 和 随机码 组合 MD5 校验。
    qq286735628
        6
    qq286735628  
       2013 年 9 月 1 日
    MD5不是用来加密,而是生成摘要的

    平常数据库中,保存用户密码的MD5值,也只是不想被爆后,用户密码直接暴露在外
    gamexg
        7
    gamexg  
       2013 年 9 月 1 日
    新密码保存为 v2$处理后的密码 ,用户登录的时候读版本标记,如果是新的就按新的处理,如果老的就按老的比较,并把密码改成新的版本保存。
    lichao
        8
    lichao  
       2013 年 9 月 1 日
    你当初要是用随机盐,就没这个烦恼了
    ahastudio
        9
    hahastudio  
       2013 年 9 月 1 日
    psw→psw_stored = md5(psw+123)→hash2(psw_stored + hash1(psw_stored))
    otakustay
        10
    otakustay  
       2013 年 9 月 2 日
    我很奇怪的是,对于加盐的md5,就算不是随机的盐,被知道算法有什么关系吗?加盐md5被逆(即便是字典法)有这么简单吗?
    vking
        11
    vking  
       2013 年 9 月 2 日 via Android
    再md5一次是最简单有效的办法。
    bigredapple
        12
    bigredapple  
       2013 年 9 月 2 日
    区分新老用户,
    老用户用老策略验证,成功更新到新策略
    新用户用新策略验证
    ichou
        13
    ichou  
       2013 年 9 月 6 日
    md5不可逆啊 你几乎不可能把所有数据100%取出明文密码了
    只能在密文基础上再加密了

    @otakustay 加盐md5被逆已经很普遍了 现在的字典真的够强大

    加密算法最好加盐后两次散列 这样可以在很大程度上避免被逆
    msputup
        14
    msputup  
       2013 年 9 月 6 日
    md5(md5($password))就好了。现在的字典还是破解不了双重的。
    如果这都被猜出密码,无非就是社工,要么就是本地嗅探或者C网嗅探的吧。
    otakustay
        15
    otakustay  
       2013 年 9 月 6 日
    @ichou 原来现在的md5字典已经连常用的盐也算在内了啊……话说如果我的加盐是把明文最后3个字符当盐,这种方案还能不能字典?
    jimrok
        16
    jimrok  
       2013 年 9 月 6 日
    要加随机盐啊,盐值要随机够大,混合后就不容易破解了。
    xhacker
        17
    xhacker  
       2013 年 9 月 6 日
    @msputup: 双重的很常见,大多数彩虹表里都有。
    jjplay
        18
    jjplay  
       2013 年 9 月 6 日
    替换字符

    a => c
    b => k
    c => 9
    e => ;

    然后再分割两组 调换位置,再逆变加密下,嘿嘿
    bd572db
        19
    bd572db  
       2013 年 9 月 6 日
    直接在现有算法基础上,再套一层强力算法,数据库里加一列,在现有密文基础上,再次加密,放到新列里

    我遇到和你一样的情形,原有的算法,太过简单
    bd572db
        20
    bd572db  
       2013 年 9 月 6 日
    这样可以迅速调整,且用户完全不会察觉
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3020 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 188ms UTC 03:03 PVG 11:03 LAX 20:03 JFK 23:03
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86