日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

传统图片验证算法的缺点及改进(原理篇)

發布時間:2023/12/10 编程问答 62 豆豆
生活随笔 收集整理的這篇文章主要介紹了 传统图片验证算法的缺点及改进(原理篇) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
??? 圖片驗證最常用在防惡意注冊的場景,但傳統圖片驗證方法的缺點在于需在服務器端維護這些隨機生成的驗證碼字符串,所以實質上只是將惡意注冊的影響從數據庫轉移到了內存,維護這個內存資源仍然會帶來一些麻煩,包括定期清理,且仍要在一定程度上考慮防惡意獲取驗證碼。

??? 下面介紹一種無需在服務器端維護驗證碼字符串的方法。

??? 我們假設服務器數據庫用戶表中的用戶名字段的值必須是唯一的(這很常見),我們借助一個加密或者哈希算法,這樣每個用戶名對應的加密字符串在統計上也可以認為是唯一的。當新用戶申請注冊的時候,先提交這個用戶名給服務器作有效性檢查,如果數據庫中沒有這個用戶名,則可注冊,這時再用這個加密或者哈希算法將這個可用的用戶名加密,返回這個加密的值的圖像數據給客戶端。(因為客戶端不知道加密密鑰,又不好破解加密算法,所以只能老老實實按圖像值輸入)

??? 隨后客戶端進入正式注冊階段,客戶端將這個圖像的對應字符串和剛才驗證通過的用戶名再次遞交給服務器,服務器再次用同樣的算法加密這個用戶名,并將加密出的值和客戶端傳來的字符串相比較,如果相同,則向數據庫提交注冊。客戶端也無法使用以前的驗證數據來欺騙服務器,因為驗證數據必須包含用戶名,驗證數據若有效則用戶名必定已存在于數據庫中,這樣是不可能插入成功的。

??? 其實這個算法巧妙地借助了數據庫某個字段值唯一性的特點,巧妙地復用了數據庫的功能。

??? 優點:無需維護Session,對于服務器系統,越少維護這樣的“全局變量”越利于減少出錯幾率。

??? 缺點:(可能,沒測過,很有可能不是缺點)加密算法消耗的CPU時間要高于字典、hash算法(Session是需要通過字典或者hash算法獲取數據的)

??? 只講原理

轉載于:https://www.cnblogs.com/WYB/archive/2008/07/01/1232785.html

總結

以上是生活随笔為你收集整理的传统图片验证算法的缺点及改进(原理篇)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。