日期:2014-05-18  浏览次数:21125 次

.NET使用OpenSSL生成的pem密钥文件(DSA)
首先说下需求:用OpenSSL 生成了公钥和私钥文件,格式为PEM的,现在用C#想要从文件中读取公钥和私钥
我已经研究了大半天了,网上搜了很久,包括很多英文网站,还是没有头绪

因为不是单独的网站需要用到密钥,要和淘宝等非.NET的系统交互,所以得遵循一定的规则,不能使用.NET提供的类生成公钥私钥。

现在想要做到的就是从PEM文件中读取了公钥和私钥后生成
C# code

DSACryptoServiceProvider dsac = new DSACryptoServiceProvider();


的对象,原先可以用这个方法生成,但是现在读到的公钥和私钥不是XML格式的
C# code
dsac.FromXmlString(PrivateStr);


网络上有篇文章写了关于“.NET使用OpenSSL生成的pem密钥文件”的,但是我需要的是DSA算法的,那个文章给出的是RSA的,DSA与RSA在参数上有很大的区别。。。
RSA的参数是两个,而DSA的参数有P,Q,G,Y,J等等。。


------解决方案--------------------
好高深啊。。。关注。。
------解决方案--------------------
恕我直言,这样的技术一般的人是不会无偿告诉别人的

偶自己也不会,但是感觉是这样。

还是得你自己慢慢研究。当你弄出来后,估计你也是不愿意告诉别人,这是常情。
------解决方案--------------------
这么深奥的东东,我倒是不介意学下;
建议去威客里发个帖子,估计会有人懂的。
------解决方案--------------------
你这样试试
C# code

X509Certificate2 x509 = new X509Certificate2(证书路径, 证书密码);
DSACryptoServiceProvider dsa = (DSACryptoServiceProvider)x509.PrivateKey;