【问题标题】:Where to store a secret key to use in a SHA-1 hash?在哪里存储要在 SHA-1 哈希中使用的密钥?
【发布时间】:2011-10-31 09:28:36
【问题描述】:

我需要使用以下 SHA-1 哈希将表单发布到安全服务器:一些表单字段和密钥。

我将使用 javascript 创建散列(在 http://crypto-js.googlecode.com/files/2.3.0-crypto-sha1.js 的帮助下),并将其放在表单中的隐藏输入字段中。接收服务器将根据相同的密钥检查哈希。

但是我应该将密钥存储在哪里?我不能把它放在 javascript 中,因为可以查看页面源(即使被混淆了?)。

我的站点托管在我可以通过 ftp 和 telnet 访问的 UNIX 服务器上。我假设如果我将密钥放在服务器上的单独 .js 文件中,那同样不安全。

我怎么能以一种安全的方式将它存储在我的服务器上,但只能由我页面上的 javascript 访问?谢谢。

【问题讨论】:

  • 为什么不只通过 HTTPS 提供您的页面并依靠传输层来提供安全性?
  • 我的网站没有 SSL 证书。

标签: javascript hash security


【解决方案1】:

你想做的事是不可能的。如果您的用户也无法看到它,您就无法在 javascript 中存储甚至访问密钥。您必须在服务器上而不是在客户端计算机上创建哈希。

混淆您的来源对于试图找到您的密钥的人来说几乎不会成为障碍,他们对 Javascript 以及整理它的工具等有一点了解。

【讨论】:

  • 谢谢。我可以在我的服务器上设置一个 cgi 脚本。有没有一种方法,在提交表单时,我可以使用需要用密钥散列的表单字段来调用它,并获得可以放入帖子隐藏表单字段的响应?
  • 以前我通过表单邮寄将所有信息传递到安全服务器,并使用 Javascript 检查输入 - 但有一个新要求是提供带有密钥的哈希。
  • ...但我需要确保 cgi 只能由我的 javascript 调用 - 否则任何人都可以调用它并获得正确的哈希值!
猜你喜欢
  • 2013-11-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-30
  • 1970-01-01
相关资源
最近更新 更多