2011-08-20 79 views
1

我需要將表單發佈到安全服務器,其SHA-1哈希值爲:某些表單字段和密鑰。在哪裏存儲要在SHA-1哈希中使用的密鑰?

我將使用javascript創建散列(在http://crypto-js.googlecode.com/files/2.3.0-crypto-sha1.js的幫助下),並將其放置在表單中的隱藏輸入字段中。收件人服務器將根據相同的密鑰檢查哈希。

但是我應該在哪裏存儲密鑰?我無法將它放入JavaScript中,因爲可以查看頁面源(即使是混淆?)。

我的網站託管在UNIX服務器上,我有ftp和telnet訪問。我假設如果我把密鑰放在服務器上的一個單獨的.js文件中,那同樣是不安全的。

我還能如何以安全的方式將其存儲在我的服務器上,但只能訪問我的頁面上的JavaScript?謝謝。

+0

爲什麼不通過HTTPS爲您的頁面提供服務並依靠傳輸層提供安全性? – sethobrien

+0

我沒有我的網站的SSL證書。 – Marto

回答

2

你想做什麼是不可能的。您無法存儲,甚至無法訪問javascript中的密鑰,也無法讓用戶看到它。您必須在服務器上而不是客戶端計算機上創建哈希。

混淆你的來源幾乎不會阻礙有人試圖找到你的祕密密鑰,誰知道一點關於Javascript,以及清理它等工具。

+0

謝謝。我可以在我的服務器上設置一個cgi腳本。有沒有一種方式,在表單提交時,我可以調用它需要與密鑰散列的表單域,並得到一個響應,我可以把這個帖子放在一個隱藏的表單域中? – Marto

+0

以前,我已經通過表單發佈將所有信息傳遞給安全服務器,並使用Javascript檢查輸入 - 但有一個新的要求是提供一個帶有密鑰的散列。 – Marto

+0

...但我需要確保cgi只能被我的javascript調用 - 否則任何人都可以調用它並獲得正確的哈希值! – Marto