1
swulling 2013-09-01 16:46:54 +08:00 1
各种语言都有那么多现成的安全的密码策略不用,为啥要自造呢,自造还选md5
选一个现成的,对密文二次加密就好了。而你这个思路相当于要把md5逆向破解.... |
2
anheiyouxia 2013-09-01 16:47:29 +08:00 2
我只想到一个笨方法,保留原来的加密算法,把用户输入的密码按照新算法换算成md5值进行对比,如果是错误的,那么就再按照原来的算法进行换算对比,如果值正确,那么再把这个旧的MD5用新的替换到数据库。
因为现在md5暂时是不可逆的,所以要主动操作改变的话.......你这个情况,就我的了解,是没办法的了..... |
3
takwai 2013-09-01 16:52:56 +08:00 via Android 1
目前看来只有二楼方法可行了。
楼主怎么不用HMACMD5或者HMACSHA1这种呢? |
4
reloop OP |
5
no2x 2013-09-01 16:57:47 +08:00
我的建议
1。将 旧MD5加密的密码 通过 + 789 再 MD5 一次,保存,这样保证数据库里的数据更新了先。 2。用户新登录或修改密码,则,MD5( MD5( 密码+123)+789 ) 校验后,用 MD5( 密码 + 随机码 ) 和 随机码 一起保存到新数据库。 3。从此使用 密码 和 随机码 组合 MD5 校验。 |
6
qq286735628 2013-09-01 17:04:04 +08:00
MD5不是用来加密,而是生成摘要的
平常数据库中,保存用户密码的MD5值,也只是不想被爆后,用户密码直接暴露在外 |
7
gamexg 2013-09-01 19:16:04 +08:00
新密码保存为 v2$处理后的密码 ,用户登录的时候读版本标记,如果是新的就按新的处理,如果老的就按老的比较,并把密码改成新的版本保存。
|
8
lichao 2013-09-01 20:00:06 +08:00
你当初要是用随机盐,就没这个烦恼了
|
9
hahastudio 2013-09-01 20:04:36 +08:00
psw→psw_stored = md5(psw+123)→hash2(psw_stored + hash1(psw_stored))
|
10
otakustay 2013-09-02 02:43:24 +08:00
我很奇怪的是,对于加盐的md5,就算不是随机的盐,被知道算法有什么关系吗?加盐md5被逆(即便是字典法)有这么简单吗?
|
11
vking 2013-09-02 08:23:12 +08:00 via Android
再md5一次是最简单有效的办法。
|
12
bigredapple 2013-09-02 08:26:29 +08:00
区分新老用户,
老用户用老策略验证,成功更新到新策略 新用户用新策略验证 |
13
ichou 2013-09-06 06:13:43 +08:00
md5不可逆啊 你几乎不可能把所有数据100%取出明文密码了
只能在密文基础上再加密了 @otakustay 加盐md5被逆已经很普遍了 现在的字典真的够强大 加密算法最好加盐后两次散列 这样可以在很大程度上避免被逆 |
14
msputup 2013-09-06 07:44:28 +08:00
md5(md5($password))就好了。现在的字典还是破解不了双重的。
如果这都被猜出密码,无非就是社工,要么就是本地嗅探或者C网嗅探的吧。 |
15
otakustay 2013-09-06 14:27:17 +08:00
@ichou 原来现在的md5字典已经连常用的盐也算在内了啊……话说如果我的加盐是把明文最后3个字符当盐,这种方案还能不能字典?
|
16
jimrok 2013-09-06 15:50:34 +08:00
要加随机盐啊,盐值要随机够大,混合后就不容易破解了。
|
18
jjplay 2013-09-06 16:07:49 +08:00
替换字符
a => c b => k c => 9 e => ; 然后再分割两组 调换位置,再逆变加密下,嘿嘿 |
19
bd572db 2013-09-06 21:35:56 +08:00
直接在现有算法基础上,再套一层强力算法,数据库里加一列,在现有密文基础上,再次加密,放到新列里
我遇到和你一样的情形,原有的算法,太过简单 |
20
bd572db 2013-09-06 21:37:20 +08:00
这样可以迅速调整,且用户完全不会察觉
|