在通过 HTTP GET/POST 发送之前,我需要在客户端对用户名/密码进行加扰。在对数据库进行检查之前,服务器将使用 Tcl 对其进行解码。
目前我正在考虑将 JavaScript 用于客户端。Java Applet 也可以。
有什么方法可以让我使用 Simple XOR 或任何其他方法轻松实现它?(示例将不胜感激)
我在 C/Python/.NET/Java 中找到了一些示例……但在 JavaScript 和 Tcl 中没有。
遗憾的是,SSL 不是一个可以使用的选项。
在通过 HTTP GET/POST 发送之前,我需要在客户端对用户名/密码进行加扰。在对数据库进行检查之前,服务器将使用 Tcl 对其进行解码。
目前我正在考虑将 JavaScript 用于客户端。Java Applet 也可以。
有什么方法可以让我使用 Simple XOR 或任何其他方法轻松实现它?(示例将不胜感激)
我在 C/Python/.NET/Java 中找到了一些示例……但在 JavaScript 和 Tcl 中没有。
遗憾的是,SSL 不是一个可以使用的选项。
如果 ssl 不是一个选项,那么我建议使用以下方案,许多站点使用它来代替 SSL:
以下是关于如何使用 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]
超人,
您应该考虑在数据库中存储纯文本密码的替代方法。看:
与其在 Javascript 中对密码进行编码,然后在 Tcl 中对密码进行解码以与数据库进行比较,不如考虑在 Javascript 中进行 SHA1 散列,并将 SHA1 散列值存储在数据库中。
在 javascript 中有几个可用的 SHA1 哈希函数示例(只是 Google 'sha1 javascript')。tcllib Tcl 库支持 SHA1。
正如 HaiVu 所提到的,您还应该考虑散列/存储不仅仅是直接的密码散列,而是使用 SHA1(用户名 + 网站名称 + 密码)之类的东西。您可以在客户端用 Javascript 计算它,并将其存储在数据库中。