2013-03-05 25 views
3

我需要加密一些內容,然後將其保存在本地存儲在html5和JS中,此刻我使用Stanford Javascript Crypto Library瞭解使用斯坦福JavaScript加密庫的JavaScript加密

目前我使用這樣的代碼。

usernameEnc = sjcl.encrypt("password", username); 
passwordEnc = sjcl.encrypt("password", password); 
localStorage.username = usernameEnc; 
localStorage.password = passwordEnc; 

我能夠正確加密。當我使用JS構建HTML5應用程序並且JS代碼在客戶端下載時,如何保護密碼以避免輕鬆解密腳本?

也許我想念我有點困惑。

+2

如果您想保密密碼,您必須要求用戶提供自己的密碼,或者在服務器上而不是在瀏覽器中進行加密和解密。 – robertklep 2013-03-05 09:24:26

回答

4

不幸的是,你無法保護你的鑰匙。它是JavaScript,它應該以某種方式下載到瀏覽器中執行。你可以混淆密鑰以使其變得有點困難,但具有普通知識的人將能夠打破它。

我想建議你可以使用用戶的密碼加密內容。所以每次用戶都應該輸入密碼來解密內容。

請不要照原樣使用用戶密碼。使用密鑰派生函數,如PBKDF2crypto-js library中有一個用於PBKDF2的JavaScript實現。

無論如何,你應該知道的是,如果你的應用程序可以在客戶端讀取它,那麼確定的人可以閱讀它,無論你多麼努力保護它。

+1

感謝@Henrik的編輯! :) – 2013-03-05 09:32:56

+0

SSL可用於保護在瀏覽器中運行的代碼,以便包含密碼。 – 2013-03-05 11:09:08

+1

@owlstead:是的,它會在服務器和瀏覽器之間傳輸時進行保護。 – 2013-03-05 13:02:37

相關問題