前幾天跟朋友一起討論關于傳輸過程加密的問題,http本身的設計就是無狀態。現在很多的網站都在傳輸過程中都沒有進行加密,只是數據庫進行了加密,而這樣的話,別人通過嗅探的話,還是可以嗅探到你的明文密碼。
比如:你的一臺機器ip是. 23.22.2.3另一臺機器是23.22.2.4,在同一個網關下23.22.2.3的這是一個網站的服務器,而我就可以用23.22.2.4這個服務器來嗅彈,23.22.2.3 80端口的信息 登錄的用戶名,等等這些信息。并且嗅探到的還是明文,先前我測試了dz dz也在傳輸過程中沒有加密,他不過就是數據庫加密比較另類一點,難解密!也就是用md5+salt來加密的。
也許有人會說,為何不用https加密呢?
1、https的是收費的。
2、https也可以突破嗅探 至于怎么樣突破 這里的就不在多說。
3、用https之后網頁會很卡,現在我們討論的并不是數據庫加密,而是傳輸過程的加密, 先前我自己想到的方法是 在客戶端js加密 而想到這個辦法后 有出現了種種的問題 問題如下: js的方法別人在網上已經說過。
1.js加密的問題是,不論單向雙向,加密方式沒辦法隱藏,會被人家看到。
2.例如我密碼是 123abc,輸入表單后發送,js給加密成了 亂碼。 發給服務端再加密下和數據庫比對。問題來了,如果入侵者截獲到js加密后的亂碼,他可以禁用js,然后直接把亂碼輸入表單后發送,效果和直接得到用戶密碼發生一. js加密這里的作用除了黑客不知道密碼是啥外,其他都沒用,亂碼也可以登錄。
js的加密的直接pass掉。這里根本行不通!
跟朋友又討論下 想到了其他的辦法 捆綁驗證碼 從而進行加密。
流程:用戶輸入密碼->js提交服務器md5(md5(pass)+驗證碼)->服務器查詢出pass然后md5(pass+驗證碼)『數據庫里pass=md5(pass)』->刪除驗證碼的session
這個方法筆者也測試了,確實可行!發出捆綁驗證碼的,從而進行傳輸加密的代碼,打包下載。