在網頁上登錄賬號密碼時,都會用到驗證碼。在12306買火車票的時候也會用到驗證碼。一直不知道驗證碼的用處和技術,這兩天趁着有時間好好的調研了一下相關的技術。驗證碼又被稱作全自動區分計算機和人類的圖靈測試,用大白話來說就是驗證碼。主要是用來區分計算機和人的全自動化程序。作為服務器端的計算機會自動生成一個問題由用戶來解答。這個問題可以由計算機生成並評判,但是必須只有人類才能解答。由於計算機無法解答出自動生成的問題,所以回答出問題的用戶就可以被認為是人類。在以前的網絡訪問中,還不存在驗證碼的用法,但由於網絡更加深入地融合到人們的生產生活中,暴力猜測登陸,垃圾廣告貼等在網絡中泛濫,消耗了大量的服務器資源同時也可能威脅到服務器的安全,驗證碼作為一種實用高效技術被大量使用起來。
驗證碼的形式:
隨機數字輸入驗證,原理:向服務端請求,生成隨機的字符,寫入會話請求,同時將隨機字符生成對應圖片,響應給前端;前端輸入對應字符的驗證碼,向后台發起校驗。
數字計算驗證,原理:同上,就是減少了字符的輸入。
圖片選擇驗證 ,原理生成圖片驗證碼,當然生成驗證碼的具體實現可以放在另一工程中或者其他的服務器上(可以通過dubbo調用生成驗證碼服務);用戶輸入界面上的圖片驗證碼,進行服務端校驗。
拼圖互動驗證
點擊式圖片驗證
驗證碼的原理差不多都大同小異,但是在交互體驗上卻相差很大,時間花費最少的,是用戶認為最便捷的。