簡體   English   中英

如何在Javascript中加密字符串並保證其安全?

[英]How can I encrypt a string in Javascript and keep it secure?

我想在Javascript中加密字符串並將該字符串通過GET傳遞給PHP並在PHP中解密該字符串。

如何在Javascrpt中保密字符串?

例如,我使用CryptoJS crypt(message, secret_passphrase) ,如何讓用戶遠離查看使用View Source的秘密密碼?

我不能使用任何服務器端編程。 我在Sharepoint頁面中使用Javascript代碼,服務器端編程需要Visual Studio。 實際上我想從Sharepoint向PHP發送包含當前用戶用戶名的加密字符串,這樣我就可以直接在PHP中驗證用戶,沒有登錄頁面(我將其解密並將其與MySQL數據庫中的某些用戶名進行比較,如果是用戶名的話)被發現,我可以繼續登錄)。

我提到了這一點,所以你可以全面了解我在做什么。

如果你不能以服務器方式進行,那么從JavaScript中就沒有絕對的方法。 由於所有JavaScript文件都下載到客戶端瀏覽器,因此用戶可以訪問這些文件。 只需一點努力,他就可以破解代碼。

您可能想看看JavaScript的混淆。 請看這個SO

一種可能的解決方案是為存儲在本地存儲中的每個瀏覽器會話使用不同的密鑰。

// Generate secret key
var key = "???";

// Store in local storage
localStorage.setItem('key', key);

然后當你需要加密某些東西時:

var key = localStorage.getItem('key');
var secure = crypt(message, key);

通過這種方式,密鑰被本地化到用戶瀏覽器,這意味着它們是否知道它們並不重要,因為它們很可能是首先創建消息的用戶。

就像aksappy說的那樣,Javascript中的所有內容都是按定義提供的,所以關鍵是,如果有一個密鑰則不會被隱藏。 如果這將要傳輸用戶名,則不需要IMO來加密它們。 攻擊者知道用戶名的可能性取決於所使用的協議。 因此,您應該使用HTTPS而不是HTTP。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM