簡體   English   中英

簡單的XOR消息(Javascript / Tcl)?

[英]Simple XOR a message (Javascript/Tcl)?

在通過HTTP GET / POST發送用戶名/密碼之前,我需要在客戶端對用戶名/密碼進行加密。 在對數據庫進行檢查之前,服務器將使用Tcl對其進行解碼。

目前,我正在考慮將JavaScript用於客戶端。 Java Applet也可以。

有什么方法可以使用簡單XOR或任何其他方法輕松實現? (示例將不勝感激)

我在C / Python / .NET / Java中找到了一些示例,但是在JavaScript和Tcl中卻沒有。

遺憾的是,不能選擇使用SSL。

如果不是ssl選項,則建議使用以下方案,許多站點都使用該方案代替SSL:

  1. 在客戶端,組合用戶名和密碼,然后從中計算出哈希值(MD5是一種流行的選擇)。
  2. 將用戶名和哈希發送到服務器
  3. 在服務器端,從數據庫中檢索該用戶的密碼。
  4. 根據用戶名和密碼,計算哈希並將其與客戶端的哈希進行比較。 如果兩者匹配,則密碼匹配。
  5. 為了增加安全性,請在用戶+密碼組合中添加一些隨機文本。 在客戶端和服務器端都必須知道此隨機文本,也稱為“鹽”。

這是有關如何使用MD5計算哈希的建議:

package require md5

proc calculateHash {user password salt} {
    return md5:md5 -hex "$user:$salt:$password"
}

如何使用它:

set user "johnny"
set password "begood2mama"
set salt "myDog_is_meaner_than_yourDog"

set hash [calculateHash $user $password $salt]

superNobody,

您應該考慮在數據庫中存儲純文本密碼的替代方法。 看到:

與其使用Javascript對密碼進行編碼,然后使用Tcl對密碼進行解碼以與數據庫進行比較,您應該考慮使用Javascript進行SHA1哈希處理,並將SHA1哈希值存儲在數據庫中。

javascript中有SHA1哈希函數的幾個可用示例(僅Google'sha1 javascript')。 tcllib Tcl庫具有SHA1支持。

如HaiVu所述,您還應該考慮散列/存儲不只是直接的密碼散列,而應使用SHA1(用戶名+網站名稱+密碼)之類的東西。 您可以使用Javascript在客戶端上進行計算,並將其存儲在數據庫中。

暫無
暫無

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

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