2014-11-01 90 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