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

2013-09-01 16:42:08 +08:00
 reloop
5828 次点击
所在节点    PHP
20 条回复
swulling
2013-09-01 16:46:54 +08:00
各种语言都有那么多现成的安全的密码策略不用,为啥要自造呢,自造还选md5

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

因为现在md5暂时是不可逆的,所以要主动操作改变的话.......你这个情况,就我的了解,是没办法的了.....
takwai
2013-09-01 16:52:56 +08:00
目前看来只有二楼方法可行了。

楼主怎么不用HMACMD5或者HMACSHA1这种呢?
reloop
2013-09-01 16:56:11 +08:00
@swulling
@anheiyouxia
@takwai
多谢各位!!
no2x
2013-09-01 16:57:47 +08:00
我的建议

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

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

3。从此使用 密码 和 随机码 组合 MD5 校验。
qq286735628
2013-09-01 17:04:04 +08:00
MD5不是用来加密,而是生成摘要的

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

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

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

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

然后再分割两组 调换位置,再逆变加密下,嘿嘿
bd572db
2013-09-06 21:35:56 +08:00
直接在现有算法基础上,再套一层强力算法,数据库里加一列,在现有密文基础上,再次加密,放到新列里

我遇到和你一样的情形,原有的算法,太过简单
bd572db
2013-09-06 21:37:20 +08:00
这样可以迅速调整,且用户完全不会察觉

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/80963

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX