如何在前端呼叫js對密碼進行加密

2021-03-03 21:26:56 字數 1324 閱讀 3522

1樓:網海1書生

加密和解密原則上都應該在後臺完成才合乎常理

,如果在前端加密,就好比在眾目睽睽之下化妝易容,然後聲稱自己是另一個人一樣,沒意義啊。

如果一定要在前端加密,可以這樣:

web前端使用者的密碼提交時應當怎樣加密

2樓:育知同創教育

密碼在前端加密完全沒有意義,對密碼系統的安全性不會有任何提高,反而會引發不必要的麻煩。首先,做前端開發的人需要知道,前端系統的控制權是完全在使用者手裡的,也就是說,前端做什麼事情,使用者有完全的控制權。假設如同 @陳軒所說,前端做過了md5,後臺就不用做了,這個做法會有什麼後果?

如果某一天,這個系統的資料庫洩露了,黑客就直接拿到了每個使用者的密碼md5值,但此時,由於黑客知道密碼是在前端進行雜湊的,所以他不需要爆破出該md5對應的原文是什麼,而是直接修改客戶端向伺服器發出的請求,把密碼欄位換成資料庫中md5就可以了,由於與資料庫中記錄一致,直接就會登入成功。這跟直接儲存明文密碼沒有任何區別!!!所以不管前端是不是加密了密碼,後臺使用安全的雜湊演算法對內容再次轉換是非常有必要的。

(md5可不行,要用bcrypt,我之前回答過一個類似的:隨著顯示卡效能的高速發展,目前的快速hash演算法是否已經變得不夠安全了?)這個回答還有一個人贊同,希望大家別被錯誤答案誤導了。

另外一個答案 @林鴻所說,在非安全http連線上,可以防止原始密碼被竊聽。但問題在於由於你的登入系統接受的雜湊過的密碼,而不是原文,竊聽者根本不需要原始密碼,只要通過雜湊結果就可以偽造請求登入系統。這樣做只能防止被竊聽到原文的密碼被攻擊者用在社會學攻擊上,而不能改善該**的安全性。

所以不管前端是不是加密了密碼,使用https安全連線進行登入都是非常有必要的。以上我說的兩點,合起來看就是:不管前端是否加密了密碼,都不能以此為假設,讓後端設計的安全等級下降,否則就會有嚴重的安全問題。

實際上,前端進行密碼加密,可以看做幫助使用者多進行了一次原文的轉換,不管用了什麼加密演算法,算出來的結果都是密碼原文,你該如何保護使用者的原始密碼,就該如何保護此處的加密結果,因為對你的登入系統來說,它們都是密碼原文。以上這些,說明了密碼加密是沒有什麼意義的,接下來,我要說明前端加密會帶來什麼問題。有些人會認為前端進行了加密,可以降低後臺的安全性需求,這種錯誤的觀念會造成系統的安全漏洞。

實際上,你不能對前端做任何的假設,所有跟安全相關的技術,都必須應用在後臺上。前端進行加密會造成頁面需要js指令碼才能執行,那麼假設你的系統需要相容不能執行js的客戶端,就必須再設計一個使用原文的登入介面。由於前端是不是加密,所有安全機制都必須照常應用,所以為系統增加這樣的複雜性是完全沒必要的,即使傳輸明文密碼,只要正確使用了https連線和伺服器端安全的雜湊演算法,密碼系統都可以是很安全的。

如何在單獨的js檔案裡呼叫,如何在單獨的js檔案裡呼叫jquery

2 在index.html中的標籤前,引入自己寫的js檔案,例如index.js檔案。3 在index.js中呼叫jquery的函式。4 瀏覽器執行index.html頁面,此時成功呼叫了index.js中編寫的內容。在head裡 先引入jquery.js後,後面的所有js 都可以直接呼叫jquer...

如何在條件成立時呼叫外部的js檔案

用cookies來記錄的話,如果刪除了cookies了,自然第二次開啟也就彈出來了!用資料庫似乎沒有必要!你的版廣告聯權盟提供的是js 那當然也好處理的啊!看我下面的你就會明白了!相信你懂得如何操作了吧!這個最好用後臺去處理,例如php cookiename date y m d getip ope...

js如何呼叫flash方法

通過 objectswf.js 呼叫actionscript中的方法.flash中 匯入包 import flash.external.提供js訪問的函式名 var method string say 指定本地函式中this變數的作用域,可設定為null留空var e area object nul...