当前位置:编程学习 > C#/ASP.NET >>

rsa数字签名 报错说密钥集不存在


 private string GetRegCode(string privateKey,string MachineCode)
        { 
            string Reg_Code = string.Empty;//注册码
            RSACryptoServiceProvider RSAcsp = new RSACryptoServiceProvider();
            RSAcsp.FromXmlString(privateKey);//导入私钥
            RSAPKCS1SignatureFormatter RSAFormatter = new RSAPKCS1SignatureFormatter(RSAcsp);
            RSAFormatter.SetHashAlgorithm("SHA1");//指定SHA1为哈希算法
            byte[] source = ASCIIEncoding.ASCII.GetBytes(MachineCode);
            SHA1Managed sha = new SHA1Managed();
            byte[] _result = sha.ComputeHash(source);
            byte[] result = RSAFormatter.CreateSignature(_result);
            RSAcsp.Clear();
            Reg_Code = Convert.ToBase64String(result);
            return Reg_Code;
        }

privateKey = <RSAKeyValue><Modulus>yTNBtGMc3sSJTjEzW4uloju1a/sxOYmPW1uHjC0y811pJMQ7Ja8bDKnxTKn6PlYbPoe4MMupqLAONp6o8ui2QsPw0lpEMV8WszQr/F4WcSApMp9k8psRA/kO+gdLal9SCCnxMbJLQBpa6JuNtLGBTJqKgLl0s+HGqYnQi80CBrU=</Modulus><Exponent>AQAB</Exponent></RSAKeyValue>
MachineCode = 568B8-CDFD8-23BDA-AB7B7

RSAFormatter.CreateSignature报错说密钥集不存在
请问怎么解决 --------------------编程问答-------------------- _result是什么结果?!  --------------------编程问答--------------------
引用 1 楼 shiyong7682719 的回复:
_result是什么结果?! 

--------------------编程问答-------------------- 大神 还在吗? --------------------编程问答-------------------- 没用过这种加密,爱莫能助啊!!     可以考虑使用其它加密方式  --------------------编程问答-------------------- 楼主提供的密钥只是公钥,但正确用法是公钥私钥都要包含在里面的。
下面是例子:
<RSAKeyValue><Modulus>uJikVPTRj2m7lg3SBFxQ3HEtap8y3MzKtUW4vhLelnvhhrBdUVusNYog9cIPODMhVRtyUev7Kqqr7E5z0zn8vjhfDLSkT0VYli3ZmDRr/JZZ343TVaqObxG6ZEZHVXzYBZ+pb0aHzR39nk002LGtFM/Qet4vOACqaASAHwvZjv8=</Modulus><Exponent>AQAB</Exponent><P>6IgQk8tQY1/AmeYJQT4vIuzVrfAcI8PR2ELfMD05bBrqZ6PjQWdp/gIlYsLq/VL9loxREDd/jY/ThprDymmraQ==</P><Q>yzoSAq7rUlNxr/Pmr8/f9VpaiBNCXcjdmmFut7Rv2v4HYMNOAXOQG1NQCdi4f2VcriZ2a9CbcvlvL/t7nAiiJw==</Q><DP>nd9bWeyMzJtC+XnryKb+e7jOLoS5pjKZ8zkbrPW0WchAY1MqxMoAdVthpJbv0kQZNbBYjSkQ6by/gUDsMy3hGQ==</DP><DQ>rqU41RV9JUKQcKUpme0Kic8b/dSPNAlqZ0FT5IsrlQa5UG6Gmri1HsZ6Afw8kT6KZx6mpgCfli7FXna/w1eoAQ==</DQ><InverseQ>1MAM8T2f/Xjfbz/ZVK6p/smx5RUmjBxdoFkGVMjEc0iY3UwmEnwOokRiLLDWgXlmqHS08Cb02BRnTQhK5sNLbw==</InverseQ><D>f+TRxkKwhmo9G2OL5JWJOJH5Y2vVM4F32EvsCVTNfvlpcYXzwZCAKb//wgWnwco7B9oyRGv44sDIyLo6KVh9sKc4iERJ5q+ZaTHoSU4TX53/mBiA778rhPXVub22IdBDCJ4VOR4WuUT6tQeXXnPIMw57j3Mroj4auNvYc6kHdyE=</D></RSAKeyValue> --------------------编程问答-------------------- 我这个方法只用到了公钥 私钥在其他方法用的 我就没给出来 --------------------编程问答-------------------- 我自己搞定了 我把公钥和私钥写反了。。。
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,