2013-12-10 33 views
1

我需要爲每個上傳的文件生成一個哈希。哈希必須與爲給定文件生成的哈希git相同(這是一個俗稱,sha1的變體)。我看着/nodejs-v0.10.22-src/core-modules-sources/lib/crypto.js。庫指的是本地綁定。爲了便於攜帶,我不想依賴本地代碼。有沒有辦法將自定義加密算法添加到nodejs加密模塊中?怎麼樣?

有沒有一種方法來添加自定義的加密算法爲加密的NodeJS模塊,在JavaScript中,這樣我可以做這些:

var hash = crypto.createHash('githash'); 
hash.update('...'); 
+0

你試圖從使用本地加密模塊vs寫入獨立模塊獲得什麼好處? – loganfsmyth

+0

我正在嘗試使用'connect.bodyParser',它接受散列算法的選項。指定的散列必須是一個字符串,並傳遞給加密庫。 –

+0

我在bodyParser上看不到任何哈希選項,所以很難判斷,但我已經留下了答案。 – loganfsmyth

回答

1

簡單的回答是否定的,你不能擴展哈希可用在crypto模塊中。給定的散列檢查在 https://github.com/joyent/node/blob/v0.10.22/src/node_crypto.cc#L2856 並基本上取決於OpenSSL支持的散列。

您可以到潛在的猴子補丁createHash重定向到自己的代碼,但不會是可取的。

相反,我建議你返工中間件使用散列的數據bodyParser完成後,或跳過標準bodyParser和實現自己的具體使用情況。

1

幾點這裏要注意:

  1. 混帳不使用不同的哈希值。這是sha1。它只是增加了一些額外的字符數據。請參閱here。爲此添加另一個散列是沒有道理的。

  2. 你需要它僅用於連接的bodyParser,考慮增加一個補丁那裏。但是,

  3. bodyparser將連接3.0中被移除。你將被期望自己解析身體/表格。