Tag: pki

非对称加密和解密

我们假设我使用此站点上的算法使用公钥 – 私钥加密和解密数据: CodeProject上C#.NET中的公钥RSA加密 现在,让我们说有人使用我的公钥使用另一种算法加密他的数据并将其发送给我。 使用不同的算法(如网站上的算法),我能够使用我的私钥解密信息吗? 或者这是不可能的,因为算法不同? 我的观点是,假设使用的密钥是正确的,如果使用不同的加密算法,最终结果是否总是相同的? 是否有一些标准的方法来加密信息,使其可以在不同的机器上解密,也许是不同的编程语言?

具有可导出私钥的证书的“坏密钥”例外

我正在尝试使用非对称加密来加密然后解密文件。 我使用makecert创建了一个测试证书,并将其安装到我的个人localmachine商店中。 将来我必须在几台服务器上安装这个证书,这就是为什么我用“-pe”标志创建它,也就是说,用可导出的私钥创建它。 证书已成功创建和安装,我在mmc中看到“您有一个与此证书对应的私钥”注释。 现在我尝试使用.NET 3.5中的RSACryptoServiceProvider加密数据。 它成功了。 但是当我试图解密它时,我得到“坏键”exception。 如果我创建没有“-pe”选项的证书,相同的代码适用于解密。 这是代码: RSA rsaKey = (RSA)myCertificate.PrivateKey; RSACryptoServiceProvider rsaCsp = (RSACryptoServiceProvider)rsaKey; byte[] plainText = rsaCsp.Decrypt(encryptedText, true); 我还尝试了另一种方法,使用System.Security.Cryptography.Pkcs命名空间: EnvelopedCms envelope = new EnvelopedCms(); envelope.Decode(encryptedText); envelope.Decrypt(); byte[] plainText = envelope.ContentInfo.Content; 结果是一样的……任何人都可以帮忙吗?

加密库?

我的任务是在C#中为公司项目实现PKI库,并且无法找到它的良好实现。 似乎有多个库,并且许多断开的链接指向已删除的MSDN库。 我见过人们使用Crypt32.dll,人们建立他们自己的库,人们使用P / Invoke访问系统证书存储,人们扩展内置库,示例根本不适用于C#(例如Java示例),和商业图书馆。 我的问题是,最推荐哪种实现/库用于简单的数据加密/解密? 作为我计划用它做的一些背景知识,我只需要使用私钥(.pfx)加密消息,并使用公钥(.cer)解密。 在此级别的项目中不需要消息签名和身份validation,尽管可能在将来。 我看到加密长度的参考让我感到不安。 我们需要能够加密任何长度的消息(理所当然!)。 这是我需要担心的事情,如果有的话,有没有办法解决它? 如果可能的话,我宁愿不在Windows证书管理器中存储公钥/私钥,但是如果它使实现变得更加简单,那就这样吧。 我意识到PKI和加密是一个庞大而复杂的主题,但无论如何我希望有一个相对简单的库……(人们可以希望,对吧?) 谢谢!