鍍金池/ 問答/Linux  網(wǎng)絡(luò)安全  HTML/ 我想變更程序中用戶密碼的加密方式,但是原來的是MD5,無法解密

我想變更程序中用戶密碼的加密方式,但是原來的是MD5,無法解密

我想變更程序中用戶密碼的加密方式,但是數(shù)據(jù)庫(kù)中已經(jīng)用原來的MD5加密方式存了好多用戶密碼。

login的時(shí)候,用戶輸入密碼然后MD5加密后再去和數(shù)據(jù)庫(kù)的數(shù)據(jù)對(duì)比,數(shù)據(jù)一致就讓登錄。

我如果改變加密方式的話,原來的這些賬戶密碼該怎么辦?

因?yàn)槭荕D5,我無法把原來加密的密碼解密再用新的加密方式加密,老用戶會(huì)登錄不進(jìn)去

回答
編輯回答
別傷我

為了兼容原來的MD5加密方式你可以在登錄時(shí)將兩種加密后的密碼都傳給后臺(tái),后臺(tái)拿兩個(gè)加密后的密碼同時(shí)和數(shù)據(jù)庫(kù)的密碼比較,如果一個(gè)通過則登錄成功。原來的用戶數(shù)據(jù)庫(kù)中還繼續(xù)存著原來的MD5密碼,新注冊(cè)的用戶和修改密碼的用戶則用新的加密方式存儲(chǔ)。

2017年6月14日 07:32
編輯回答
司令

加個(gè)字段,加密類型,默認(rèn)MD5(兼容目前庫(kù)里有的),如果你想改加密方式,那么新用戶進(jìn)來就用新的,老用戶登錄成功后把密碼加密算法也改了存數(shù)據(jù)庫(kù)

2017年11月6日 21:25
編輯回答
青瓷

加個(gè)字段,沒有必要強(qiáng)制要求老用戶改密碼

WHERE
(pwd=md5("123456") AND pwdType = "md5")
OR
(pwd=newFunc("123456") AND pwdType = "newMethod")
2017年4月21日 16:11
編輯回答
枕邊人

可以在數(shù)據(jù)庫(kù)增加一個(gè)字段保存加密的方法 是md5還是其他。
登錄的時(shí)候根據(jù)這個(gè)字段判斷加密算法
然后通知老用戶改密碼,改了之后的新密碼就是新的加密方法了,同時(shí)把 保存加密方法的字段修改成新的加密方法

2018年7月12日 00:02