導航:首頁 > 文檔加密 > 前端需要做到密碼加密嗎

前端需要做到密碼加密嗎

發布時間:2023-02-02 12:22:41

⑴ 【前端】常用加密方法

• JavaScript 加密後傳輸(具體可以參考後面的常見加密方法)
• 瀏覽器插件內進行加密傳輸
• Https 傳輸

在加密演算法中又分為對稱加密和非對稱加密。

對稱加密採用了對稱密碼編碼技術,它的特點是文件加密和解密使用相同的密鑰加密.也就是加密和解密都是用同一個密鑰,這種方法在密碼學中叫做對稱加密演算法.

對稱加密演算法使用起來簡單快捷,密鑰較短,且破譯困難,除了數據加密標准(DES),另一個對稱密鑰加密系統是國際數據加密演算法(IDEA),它比DES的加密性好,而且對計算機功能要求也沒有那麼高.

常見的對稱加密演算法有DES、3DES、Blowfish、IDEA、RC4、RC5、RC6和AES

注意: 因為前端的透明性,對於登錄密碼等敏感信息,就不要使用JavaScript來進行對稱加密. 因為別人可以從前端得到密匙後,可以直接對信息進行解密!

非對稱加密演算法需要兩個密鑰:公鑰(publickey)和私鑰(privatekey)。 公鑰與私鑰是一對,如果用公鑰對數據進行加密,只有用對應的私鑰才能解密;如果用私鑰對數據進行加密,那麼只有用對應的公鑰才能解密。 因為加密和解密使用的是兩個不同的密鑰,所以這種演算法叫作非對稱加密演算法。

非對稱加密演算法實現機密信息交換的基本過程是:甲方生成一對密鑰並將其中的一把作為公鑰向其它方公開;得到該公鑰的乙方使用該密鑰對機密信息進行加密後再發送給甲方;甲方再用自己保存的另一把專用密鑰對加密後的信息進行解密。甲方只能用其專用密鑰解密由其公鑰加密後的任何信息。

常見的非對稱加密演算法有:RSA、ECC(移動設備用)、Diffie-Hellman、El Gamal、DSA(數字簽名用)

⑵ Web前端密碼加密是否有意義

在前端對密碼做一次MD5,看起來是防止明文傳輸了,事實上只有一種情況下它可以提高用戶的安全性,那就是用戶在別的網站上也用和你的網站一樣的密碼。並且在任何情況下都提高不了你自己網站的安全性。前面說的傳輸過程、內存里、日誌里……這些地方沒有明文密碼,其實都只能保護用戶本身的利益,對於自身服務的安全性是沒有提高的。因為,既然傳輸過程不是加密的,那麼包隨便發,至於發一個abc123,還是發一個,對你的程序沒有任何的區別,這時候你的程序都是小綿羊。這個過程可以看做,你的用戶都用了32位字元串的密碼,如是而已。從事實意義上講,在所有網站上用同樣密碼的用戶非常多,所以可以勉勉強強的說,這是有一丁丁點的意義的。但即使在前端做了簽名,因為hash暴露了,也還是很容易被撞庫。但是,對安全性沒有提高,就不做了嗎?當然要做,因為要應付審計。

⑶ Web前端密碼加密是否有意義

密碼在前端加密完全沒有意義,對密碼系統的安全性不會有任何提高,反而會引發不必要的麻煩。

(1)加密了也無法解決重放的問題,你發給伺服器端的雖然是加密後的數據,但是黑客攔截之後,把加密之後的數據重發一遍,依然是驗證通過的。直接監聽到你所謂的密文,然後用腳本發起一個http請求就可以登錄上去了。

http在網路上是明文傳輸的,代理和網關都能夠看到所有的數據,在同一區域網內也可以被嗅探到,你可以開個wireshark抓下區域網的包試試看。加密也沒有提高什麼攻擊難度,因為攻擊者就沒必要去解密原始密碼,能登錄上去就表示目標已經實現了,所以,難度沒有提高。

(2)既然是加密,那麼加密用的密鑰和演算法肯定是保存在前端的,攻擊者通過查看源碼就能得到演算法和密鑰。除非你是通過做瀏覽器插件,將演算法和密鑰封裝在插件中,然後加密的時候明文混淆上時間戳,這樣即使黑客攔截到了請求數據,進行重放過程時,也會很快失效。

⑷ Web前端密碼加密是否有意義

密碼在前端加密完全沒有意義,對密碼系統的安全性不會有任何提高,反而會引發不必要的麻煩。首先,做前端開發的人需要知道,前端系統的控制權是完全在用戶手裡的,也就是說,前端做什麼事情,用戶有完全的控制權。假設如同 @陳軒所說,前端做過了md5,後台就不用做了,這個做法會有什麼後果?如果某一天,這個系統的資料庫泄露了,黑客就直接拿到了每個用戶的密碼md5值,但此時,由於黑客知道密碼是在前端進行哈希的,所以他不需要爆破出該md5對應的原文是什麼,而是直接修改客戶端向伺服器發出的請求,把密碼欄位換成資料庫中MD5就可以了,由於與資料庫中記錄一致,直接就會登錄成功。這跟直接存儲明文密碼沒有任何區別!!!所以不管前端是不是加密了密碼,後台使用安全的哈希演算法對內容再次轉換是非常有必要的。(MD5可不行,要用bcrypt,我之前回答過一個類似的:隨著顯卡性能的高速發展,目前的快速Hash演算法是否已經變得不夠安全了?)這個回答還有一個人贊同,希望大家別被錯誤答案誤導了。另外一個答案 @林鴻所說,在非安全HTTP連接上,可以防止原始密碼被竊聽。但問題在於由於你的登錄系統接受的哈希過的密碼,而不是原文,竊聽者根本不需要原始密碼,只要通過哈希結果就可以偽造請求登錄系統。這樣做只能防止被竊聽到原文的密碼被攻擊者用在社會學攻擊上,而不能改善該網站的安全性。所以不管前端是不是加密了密碼,使用HTTPS安全連接進行登錄都是非常有必要的。以上我說的兩點,合起來看就是:不管前端是否加密了密碼,都不能以此為假設,讓後端設計的安全等級下降,否則就會有嚴重的安全問題。實際上,前端進行密碼加密,可以看做幫助用戶多進行了一次原文的轉換,不管用了什麼加密演算法,算出來的結果都是密碼原文,你該如何保護用戶的原始密碼,就該如何保護此處的加密結果,因為對你的登錄系統來說,它們都是密碼原文。以上這些,說明了密碼加密是沒有什麼意義的,接下來,我要說明前端加密會帶來什麼問題。有些人會認為前端進行了加密,可以降低後台的安全性需求,這種錯誤的觀念會造成系統的安全漏洞。實際上,你不能對前端做任何的假設,所有跟安全相關的技術,都必須應用在後台上。前端進行加密會造成頁面需要js腳本才能運行,那麼假設你的系統需要兼容不能運行js的客戶端,就必須再設計一個使用原文的登錄介面。由於前端是不是加密,所有安全機制都必須照常應用,所以為系統增加這樣的復雜性是完全沒必要的,即使傳輸明文密碼,只要正確使用了HTTPS連接和伺服器端安全的哈希演算法,密碼系統都可以是很安全的。

⑸ Web前端密碼加密是否有意義

  1. 明文傳輸的是第三方的密碼:Apple ID 與密碼。因為這個是用戶在另一個網站的數據,如果加密之後,雖然攻擊者可以通過重放攻擊重新進行登錄,但是加密情況下無法獲取到原始的 Apple ID 的賬號和密碼。

  2. 不加密的話如果HTTP請求被攔截的話就可以知道用戶的原始密碼了,這是一件要不得的事情。

  3. 如果被攔截了,不管怎樣攔截者只要查看源碼,模擬請求之後都能登陸上。但是因為很多用戶目前來說基本上來說不會一個網站一個密碼,而是對應著多個賬戶的。

  4. 加密更安全,不是為了完全阻擋攻擊,而是為了提高攻擊的成本,降低被攻下的概率。

⑹ 記錄一下前端使用CryptoJS的幾種加密方式

自己太小白了,之前在PC端項目中使用的MD5加密,現在的小程序項目使用了 CryptoJS 裡面的 enc-base64 和 hmac-sha1 ,之前沒有用到過這兩種,所以比較疑惑,為何在小程序不繼續使用 MD5 呢?所以在這里記錄一下自己解疑惑的一些知識點。

隨著互聯網的興起,我們對信息的安全越來越受重視,這樣就導致在web開發中,對用戶密碼等各種加密變得更加重要了。與伺服器的交互中,為了確保數據傳輸的安全性,避免被黑客抓包篡改。

對於Base64編碼的,我覺得看一篇文章能夠解決你的疑惑,我在這里就不贅述了
🧐 Base64編碼原理

如: 用戶密碼,請求參數,文件加密

如: 介面參數簽名驗證服務

支付數據、CA數字證書

前端的朋友可能會關注前端js加密,我們在做 WEB 的登錄功能時一般是通過 Form 提交或 Ajax 方式提交到伺服器進行驗證的。為了防止抓包,登錄密碼肯定要先進行一次加密(RSA),再提交到伺服器進行驗證。一些大公司都在使用,比如淘寶、京東、新浪 等。

前端加密也有很多現成的js庫,如:

JS-RSA: 用於執行OpenSSL RSA加密、解密和密鑰生成的Javascript庫, https://github.com/travist/jsencrypt

MD5: 單向散列加密md5 js庫, https://github.com/blueimp/JavaScript-MD5

crypto-js: 對稱加密AES js庫, https://github.com/brix/crypto-js

-CryptoJS (crypto.js) 為 JavaScript 提供了各種各樣的加密演算法。

HMAC 系列是消息驗證,用於驗證一個消息是否被篡改——如網站上傳遞 email 和 hmac(email),則接收時可以通過 hmac(email) 獲知 email 是否是用戶偽造的

⑺ Web前端密碼加密是否有意義

沒有意義


密碼前端的加密根本沒有意義,密碼系統的安全性沒有提高,但會造成不必要的麻煩。

首先,前端開發人員需要知道前端系統的控制完全掌握在用戶手中,也就是說前端所做的事情和用戶擁有完全的控制。據稱,前端做了MD5,後台不必做,這種方法會有什麼後果?如果有一天,系統資料庫泄露,黑客直接獲得每個用戶的密碼的MD5值,但這一次,因為黑客知道密碼的哈希的前面,所以他不需要鼓風的MD5對應什麼是原創,而是直接修改發送到伺服器的客戶端請求的在它的資料庫密碼欄位MD5,符合資料庫中的記錄,你可以直接登錄。這與直接存儲明文密碼沒有區別!!!所以不管前端密碼是否加密,後台使用哈希演算法的安全內容轉換都是必要的。(MD5不能使用BCrypt的,我以前回答類似:用圖形表現,當前快速發展的快速哈希演算法已成為不安全嗎?)有一個人同意這個答案,我希望你不要被錯誤的答案誤導。對方的回答,Linh說,是為了防止原始密碼被利用在一個不安全的HTTP連接。但問題是,因為你的登錄系統接受密碼代替原來的,竊聽者根本不需要原始密碼,只要哈希結果可以偽造請求登錄系統。這樣做只會防止攻擊者在社交攻擊時使用原始密碼,而不會提高網站的安全性。所以不管前面密碼是不是加密的,使用HTTPS安全連接登錄都是很有必要的。

閱讀全文

與前端需要做到密碼加密嗎相關的資料

熱點內容
安卓手機mp3壓縮工具 瀏覽:214
程序員和交易員 瀏覽:422
怎麼變字體樣式app 瀏覽:173
名字叫湯什麼的視頻app 瀏覽:207
金屬加密鍵盤聯系電話 瀏覽:335
自製解壓牛奶盒子教程 瀏覽:64
編譯高手的圖片 瀏覽:922
單片機數碼管顯示時分秒 瀏覽:780
手指解壓最簡單的方法 瀏覽:345
韓國郵箱伺服器地址 瀏覽:967
android版本介紹 瀏覽:410
pdf文件加密軟體 瀏覽:410
長沙住房app怎麼看備案 瀏覽:603
安裝加密軟體的電腦會被監控么 瀏覽:221
java微博源碼 瀏覽:569
堆排序簡單實現python 瀏覽:461
單片機引腳與鍵盤的關系 瀏覽:132
壓縮火柴盒製作 瀏覽:38
谷歌地圖android偏移 瀏覽:214
bitlocker硬碟加密空間 瀏覽:238