2016-01-25 53 views
1

我想加密從客戶端發送的密碼。我發現了提供AES實現的crypto-js。我的問題是,如果我使用「密碼」進行加密,任何可以查看頁面源的人也可以看到我的「密碼」嗎?如果我有錯誤的概念,請幫我清除它。使用AES加密客戶端的密碼?

+3

你幾乎肯定有錯誤的概念。密碼通常是散列的,而不是加密的。爲什麼你需要以純文本的方式知道密碼?另外,對你的問題是。 – SmokeDispenser

+1

請仔細閱讀:[Javascript Cryptography Considered Harmful](https://www.nccgroup.trust/us/about-us/newsroom-and-events/blog/2011/august/javascript-cryptography-considered-harmful/) –

+1

一如既往......你說「我想......」......我說「你爲什麼要?」 –

回答

1

不,你不能只讀密碼,如果它沒有存儲在JavaScript中。

但是,在幾乎所有可以讀取JavaScript代碼的情況下,JavaScript代碼也可以更改。如果你不能相信代碼,那麼所有的賭注都將被關閉 - 密碼可能被髮送到任何地方或從任何地方檢索。

以一個網吧爲例。你連接到「coffeeplace.com」,但你實際上登錄到一個騙局服務。在這種情況下,任何未受保護的連接都可以改變。如果惡作劇服務獲得了惡意CA證書,那麼對於HTTPS連接甚至是如此。

如果你想保護密碼,你應該通過HTTPS連接發送它。如果您希望HTTPS傳輸安全性之上的應用程序級別安全,那麼您可以使用公鑰加密密碼;服務器可以稍後使用私鑰對其進行解密。

如果您想要在服務器上安全地存儲密碼(散列),則應用程序級安全性非常有用。然後,您可以稍後使用後端服務處理加密的密碼。

0

要回答您的實際問題:是的,每個人都會看到密碼。

不過說真的,做一些研究:

  • 密碼哈希:你真的需要知道用戶的密碼的明文?
  • 爲什麼使用JavaScript加密是一個真的壞主意在幾乎所有的用例。在它
  • 信息安全的整體

留下信息安全,誰知道自己的地盤的人。你很可能會引入新的問題,因爲加密很難,即使有所有的最好的意圖。

+0

這是不令人鼓舞的.. –