针对C#的BouncyCastle进行ECC加密

时间:2009-12-20 05:00:50

标签: c# winforms licensing cryptography bouncycastle

在阅读有关使用ECC以使用私钥实现散列的this post之后,我设置了关于尝试查找ECDH和came across BoucyCastle的实现。

不幸的是文档很少(如zerow!),我不确定I'm about to accomplish完全正确/有效。

我们希望简单地散列4个字符串,这些字符串将是用户注册信息(名称,公司,他们的公司ID和他们的帐户ID,均为12个字符),然后计算可用于激活我们软件的序列。

我已经使用PUTTYGEN.exe生成了一个密钥对,但我无法使用BouncyCastle来训练如何应用它,我可以使用哪个类开始使用?那里有什么例子吗?

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

有人有什么想法吗?

2 个答案:

答案 0 :(得分:0)

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

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

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

在此示例中,他们使用MS的sn.exe工具创建密钥。

答案 1 :(得分:0)

到目前为止,我已经连接了信息并计算了它的MD5哈希值(使用.NET类).....
这句话本身就让我担心。 MD5严重破裂 - 不仅在理论上而且在实践上都是如此。请不要使用MD5进行安全散列。使用SHA-256或SHA-512,这里是why

你链接的帖子也不完全正确 - 是的对称算法使用相同的密钥来加密/解密,但公钥/私钥不是一个神奇的子弹。

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

重点是良好的哈希算法是不可逆的,因此非常难以破解,因此非常适合您的目的。但是,我建议使用SALT,这是一个加密随机数,可以添加到您的用户数据,然后散列该数据,因为它可以使您的数据更安全地抵御字典攻击(黑客使用熟知的术语和变体来破解密码)< / p>