QQ可以在不輸入密碼的情況下檢測以前設置的密碼的強度,這是否說明QQ是明文保存密碼的?
01-02
如果我的密碼已經加密,怎麼可能知道我的密碼是不是純數字呢?
唯一的可能性是我每次修改密碼,都會把我修改時檢測出的密碼強度單獨保存下來,但這個檢測強度應該是一個新功能吧,如果我上一次修改密碼是在出這個功能之前改的,怎麼可能知道密碼強度呢?QQ年齡這麼大,肯定有很多老用戶萬年不改密碼的呀。這個一鍵檢測,簡直細思恐極。
以前研究過QQ的web登陸,單從自己的角度來看
QQ密碼的加密,是單向加密 這是QQ在網頁登陸時候的,調用的JS加密可以看到,他將你的明文密碼,用md5加密一次,然後再用hexchar2bin這個方法再加密一次把之前的加密結果,再和QQ號載入一起MD5一次。繼續把第二次的加密,加上驗證碼大些,進行MD5加密一次。以上過程,共用了3次MD5加密和一次hexchar2bin方法加密MD5本身是不可逆的,3次,就更加不可逆了,這僅僅是我的個人見解,至於在註冊,或者修改密碼的時候,是否明文提交,等下試試看沒有用過這個功能,題主可以補充下檢測結果嗎?
以下純屬猜測, 1. 如果檢測結果有具體數字量化的強度值, 基本可以確定存儲的是明文密碼。 因為md5,sha1之類的hash存儲的密碼是不可逆的,自然是檢測不了具體的密碼強度值的。2. 如果只可以檢測出是否弱密碼,這個是可以辦到的。 服務端只要有個弱密碼資料庫, 每個弱密碼有計算好的對應hash值,然後直接查詢你的密碼hash在不在這個資料庫里, 如果能查詢到就屬於弱密碼。其實這個就是彩虹表(Rainbow Tables)攻擊的原理,只不過這裡用來檢測弱密碼而已。第一種可能性:在你設置密碼的時候,服務端就保存了你的密碼強度。等到你測試的時候,根據保存好的內容提示。第二種可能性:用了非對稱的加密。一個公鑰一個私鑰。而私鑰在騰訊手裡。難道你們都忘了什麼是非對稱加密?
不邀自來,想到兩種方案。一,在用戶設定密碼的時候,就記錄了用戶的密碼強度。二,準備了若干個彩虹表,因為大規模彩虹表成本很高,所以就算查到也可以算作中等密碼強度。
測試了一下,判定標準大概是:
對於不是太短的密碼(8位以上?沒具體測試這個閾值),檢查數字、小寫字母、大寫字母和符號這四大類中出現了幾類。1類是低,2類是中,3、4類是高。
對於短密碼,似乎降一級。
所以不需要存儲原始密碼就可以判斷密碼強度的。甚至如 @沈怡濤 所說提前存儲密碼強度也可以。
但也不排除存儲了原始密碼的可能。
如果能找到一個第一批QQ用戶還一直沒改過密碼的說不定能測試出來……前提是那時候OICQ已經不是明文存儲密碼了。
Update:
@李峰 (這個名字太多@不到了)在匿名用戶的答案下面評論說申訴可以填儘可能相似的密碼,那基本就是存儲了原始密碼或可逆加密後的原始密碼了。
順便贊一下 @李峰 的簡介欄。多點感謝少點贊。
我覺得qq肯定存儲了用戶的密碼。 曾經用過的也保存在。 還記得以前申訴的時候會讓你填寫以前用過的密碼嘛?
騰訊肯定比任何其它第三方的人都更關注QQ賬號的安全性,所以明文一說不大可能發生。至於可以檢測出以前賬號的強度,可以參考一下 @weyou 的猜測2,可能性很大
記得曾經看過在某浪工作的碼農博客,裡面提到由於有關部門要求提供用戶的密碼,所以他們的資料庫密碼是用可逆加密演算法加密的,而不是md5,sha之類的
真實性有待考證明文保存了密碼強度,但是沒有明文保存密碼。至於那位說申訴時要填密碼,說明密碼是明文保存的真是笑死人了。
你登陸時也要填密碼那密碼是不是也是明文保存了?
推薦閱讀:
※我的視頻VIP賬號密碼泄露了,怎麼辦?
※新聞裡面說連接公共場合免費wifi可能會泄露銀行帳號及密碼這個存在可能性嗎?
※Feistel結構為什麼是加解密互逆?
※Gmail密碼模糊驗證原理?
※這個圖什麼意思?