在我的系统中,公钥和私钥都是在服务器上生成的,服务器端(linux系统)是用java写的。java生成的私钥是用PKCS8编码的,我将它存到文件里然后发给客户端。客户端有些部分是.net写的(因为这部分是outlook的插件),需要将这个私钥文件读进来并进行数字签名。但我发现.net里的DSACryptoServiceProvider之类的只能通过FromXmlString方法从xmlString里读取私钥。如何将PKCS8编码的私钥转化为.net能用的xmlString呢?
我在.net下用DSACryptoServiceProvider生成了私钥,然后用ToXmlString方法输出的格式我看不大明白,还请大虾指点一二。

解决方案 »

  1.   

    作个广告,
    用系统的API写,太麻烦了,
    我建议你可以和上海CA谈一谈,
    我们公司的API开发使用证书方面还是比较有优势的021-62077151
      

  2.   

    .net下的DSACryptoServiceProvider生成的私钥用ToXmlString输出为如下:
    里面的哪部分是私钥呢?<DSAKeyValue><P>1U6O4Z/G/uuJI/B9cXcjwVDRJvazG8IeDs9wJdFsFfydl/C3zxohdHtD74K2SVOU5/T74TZBqg+FvsY8F5MPo7xFmGLW9Io80LJGQChe6YNSoklwsAtcBVMtLA8qVy7PJKYvUR13ixUgnJwlUUQUPc+PCNdy9EtSL53x4sEHb30=</P><Q>yBrSSfMVj6Q0Yc1Ve9G7K0IKOH0=</Q><G>Fdm/4w9/7TMNe9Uamq4ya4d0P3mRuCKJotSFAMpj3Z9YIgPFaV4yOOBvQReRbNVyYES8fSXeFtq/Dl9jkimaVuTB2LRGeT+sEYHsbYiQQXjZhCjSJd7sAVsghf2VMCFyVzXfSgpibfJK4rUs3vhuokRWduwR2UAaDc8c813yRNg=</G><Y>sr7zJFN/VKL5MhOHL8qPjkDsCvvM9zM1IxjHnb3Lb1CJLYlY4vZOsYtgNgPa2IchBvXDESgvUs1zEZbjtriizPQ2n47QonwFzu10VDisZoB7s6sC8TMsA8WelKr+b3i0OzW3rQQJ81h2NNXnYpMUpKTgg9qN1RqWOo+814QjI80=</Y><J>AAAAARDjzEQTe8qQ5SCucK3awQ2VGN4cqj2ZMKaKS1aE/uCDb9ChDk2mDveTAJOX7OfUdf4A1eths3xaXvdf6Fhlqi7o2Phh3LOtRNTqbZb1QAJ1UqwlIr+IwZae+2hHgFKKCV7B81GGJCm8KwPCLA==</J><Seed>sucdr+4Pscmem1dFhEbWzRjBC6E=</Seed><PgenCounter>3Q==</PgenCounter><X>r3pJRdiT6Q5wQQSa60w7wgJgk5k=</X></DSAKeyValue>