1

在阅读了这篇关于使用 ECC 使用私钥实现散列的帖子后,我开始尝试寻找 ECDH 的实现并遇到了 BoucyCastle

不幸的是,文档很少(如 zerow!),我不确定我要完成的工作是否完全正确/有效。

我们想简单地对 4 个字符串进行哈希处理,这些字符串将是用户注册信息(姓名、公司、他们的公司 ID 和他们的帐户 ID,都是 12 个字符长),然后计算他们可以用来激活我们软件的序列。

我已经使用 PUTTYGEN.exe 生成了一个密钥对,但我无法锻炼如何使用 BouncyCastle 应用它,我可以使用哪个类来开始?有没有例子?

到目前为止,我已经连接了这些信息并计算了它的 MD5 哈希值(使用 .NET 类)我不能使用新的 VISTA 增强 API 函数,因为我们仍然以 XP 为目标 - .NET 3.5。

有人有想法么?

4

2 回答 2

0

我认为 .NET 有 RSACryptoServiceProvider 类,它是一个完整的 RSA 实现。

这里有您的特定应用程序的示例代码:

http://www.codeproject.com/KB/security/xmldsiglic.aspx

在这个例子中,他们使用 MS 的 sn.exe 工具来创建密钥。

于 2009-12-20T05:41:03.873 回答
0

到目前为止,我已经连接了这些信息并计算了它的 MD5 散列(使用 .NET 类)......
该语句本身让我担心。MD5 非常容易破解——不仅在理论上,而且在实践中。请不要使用 MD5 进行安全散列。使用 SHA-256 或 SHA-512,原因如下

此外,您链接的帖子也不完全正确 - 是的,对称算法使用相同的密钥来加密/解密,但公钥/私钥不是灵丹妙药。

1)公钥/私钥很慢
2)大多数公钥/私钥算法只是加密对称密钥,然后对数据使用对称加密,因为它要快得多

关键是一个好的散列算法是不可逆的,因此很难破解,所以非常适合您的目的。但是,我建议使用 SALT,它是一个加密随机数,可以添加到您的用户数据中,然后对该数据进行哈希处理,因为它可以使您的数据更安全地抵御字典攻击(黑客使用众所周知的术语和变体来破解密码)

于 2009-12-20T23:47:27.893 回答