手機驗證碼是通過輸入的手機號再打亂然後組合而成,會不會容易被破解?

來源:互聯網
上載者:User
我本來是想隨機形成手機驗證碼,然後提交時寫入資料庫,然後讀出來對比,這樣要查表,所以想了另外個方法,就是通過輸入的手機來重新組合成一個驗證碼,這驗證碼形成是有規律的,註冊的會員可以長期有效,此方法不用寫表操作,就是不知道安全性怎麼樣,會不會容易被破解?

回複內容:

我本來是想隨機形成手機驗證碼,然後提交時寫入資料庫,然後讀出來對比,這樣要查表,所以想了另外個方法,就是通過輸入的手機來重新組合成一個驗證碼,這驗證碼形成是有規律的,註冊的會員可以長期有效,此方法不用寫表操作,就是不知道安全性怎麼樣,會不會容易被破解?

長期有效顯然是有問題的,你要考慮有可能出現泄漏的問題。至於破解的話,找一個設計合理的雜湊演算法,只要演算法中的關鍵資訊不泄漏,倒是不用擔心這個問題。

一個變通的方法是讓驗證碼和某個時間點相關,例如: md5(md5(time + phone) + secret),其中time取最近的整點時間,secret是密鑰,計算出雜湊值取後6位,有效期間為2個小時(具體有效期間和time的策略可以根據實際需要調整);驗證的時候把最近兩個整點的時間代進去,如果有一個符合就通過。這樣只要secret不泄漏,就既能保證不被破解,又能保證不怕之前的驗證碼泄漏;而且就算secret泄漏了,換一個就行了:)

(看起來似乎很像某些銀行U盾裡的動態密鑰,不過不知道它們具體是怎麼實現的)

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.