在 C# 中对 SHA-1 生成的密钥进行数字运算
我正在尝试实现 Chord 分布式哈希表。我想使用 SHA-1 作为哈希函数来生成节点 id 并将值映射到 DHT。但是,我需要对 SHA-1 生成的密钥使用数字运算,例如取模。我想知道应该将获得的字节数组放入哪种类型的变量中,以及如何从一种类型转换为另一种类型。
I'm trying to implement a Chord distributed hash table. I want to use SHA-1 as the hash function to generate node ids and map values to the DHT. However, I'll need to use numerical operations on the SHA-1 generated key, such as a modulo, for example. I wonder in which type of variable should I put the array of bytes I get, and how can I convert from one to another.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果您的密钥的最大长度为 8 个字节,您可以从获得的字节创建一个 long 变量。
如果你的输出较长,你必须寻找一个适用于字节数组的 C# 大数字库。
编辑:
注意 .NET Framwork 版本 4 具有 BigInteger 类型,正好可以满足您的需求。
互联网上还有很多项目也提供类似的功能。
If your key has the maximum length of 8 bytes you can create a long variable from the byte you get.
If your output is longer you have to look out for a big-number library for c# which works on byte arrays.
EDIT:
NOTE That .NET Framwork Version 4 has the BigInteger type which just would fit your needs.
There also lots of projects on the internet which also provides similar functionality.