2014-11-01 72 views
1

計算HMAC在Java中,我可以做到這一點來計算HMAC:拉斯特

import javax.crypto.Mac; 
import javax.crypto.spec.SecretKeySpec; 

//....... 
Mac hmac = Mac.getInstance("some algorithm"); 
hmac.init(new SecretKeySpec("some secret", "some algorithm")); 
byte[] res = hmac.doFinal(("some str").getBytes()); 

我該怎麼辦魯斯特同樣的事情?

+2

中沒有任何HMAC的標準庫。 – 2014-11-01 04:34:23

+0

@ChrisMorgan,這個問題不是關於標準庫中的HMAC。 – 2014-11-01 10:21:14

+1

哦,來吧 - 我做了一個簡單的聲明,這是完全正確的!我沒有評論任何其他事情,贊成或反對。 – 2014-11-01 10:37:09

回答

5

rust-crypto顯示爲offer HMAC。使用正確的方法是,以install Cargo,並添加

[dependencies.rust-crypto] 
git = "https://github.com/DaGenix/rust-crypto" 

您Cargo.toml。

它看起來像正確的API調用Hmac::new與您選擇的關鍵&摘要(任何實現的Digest特質的作品,如Sha256),飼料的數據通過input和提取物result結果(這些都需要進口the Mac trait

我找不到任何在線文檔,但添加的依賴將建成rust-crypto的文檔進(IIRC)./target/doc/rust-crypto。後在本地運行在你的代碼cargo doc

+0

'您選擇的關鍵字和摘要' - 摘要是算法的名稱,例如SHA1,SHA512,DES,是否正確? – 2014-11-05 13:18:52

+0

@AlexanderSuperamp,是的,基本上。 [請參閱文件末尾的測試以查看使用示例](https://github.com/DaGenix/rust-crypto/blob/bd9f097058131f89ca85fb3a8f02d47833449061/src/rust-crypto/hmac.rs#L163)。 – huon 2014-11-06 00:27:31

+0

該庫不編譯,它說「錯誤:宏未定義:'恐慌!'」。由於自己修復並創建拉取請求可能需要很長時間,因此您會對我提出什麼建議?我認爲我應該在本地修復它,並使用它,因爲它是我的圖書館。 – 2014-11-06 04:00:50