做一个与建行接口的网上银行的小项目,遇到这样一个问题,关于用RSA解密的数字签名的问题,我的源代码如下,恳请做过这方面项目的大虾们

marysxj 2006-08-17 03:19:24
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
string path=Server.MapPath("jiemi.xml"); //放公钥的文件jiemi.xml
StreamReader reader=new StreamReader(path);
string sKey=reader.ReadToEnd();
reader.Close();
string sStr=Page.Request["SIGN"].ToString(); //数字签名
rsa.FromXmlString(sKey); //重新构造xmlstring
byte[] done1 = rsa.Decrypt(Convert.FromBase64String(sStr),false);
string returnStr=Encoding.GetEncoding("gb2312").GetString(done1);

关于私钥和公钥的用法只是明白一点点,因为暂时无法进行调试,不知道自己写的用私钥解密的程序是否正确。

恳请做过这方面的项目的大虾们相助!或者提供其他的方法。
注:是与建行的网上银行的接口!!!
分不够再加!解决后高分相送。
...全文
438 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
marysxj 2006-08-18
  • 打赏
  • 举报
回复
又沉下去了,自己顶!
marysxj 2006-08-18
  • 打赏
  • 举报
回复
谢谢楼上的。我已经解释了错误的原因,并且已经纠正了。
不知道我的代码还有其他的什么问题。
继续讨论!
就要出去实施了,回来之后结帖。
windspeed 2006-08-18
  • 打赏
  • 举报
回复
尝试将数字签名进行使用公钥的逆运算时候出现如下错误提示:
Base-64 字符数组的无效长度。
错误在这一行:byte[] done1 = rsa.Decrypt(Convert.FromBase64String(sStr),false);


当Convert.FromBase64String方法的参数s的长度小于 4 或不是 4 的偶数倍时,将会抛出FormatException。
marysxj 2006-08-18
  • 打赏
  • 举报
回复
谢了,楼上的。
现在没有确定,无法结帖。
继续
chinadragon5188 2006-08-18
  • 打赏
  • 举报
回复
没有做过,帮顶。
marysxj 2006-08-17
  • 打赏
  • 举报
回复
大虾们帮忙啊!
明天结帖了!
marysxj 2006-08-17
  • 打赏
  • 举报
回复
谢谢帮顶者!
问题没办法解决,下班前就不能结帖了!!
test20060705 2006-08-17
  • 打赏
  • 举报
回复
不会,帮顶
marysxj 2006-08-17
  • 打赏
  • 举报
回复
找到原因了,sStr的长度不能小于4并且必须是4的整数倍。修改了之后又出现一个错误:
不正确的数据

我想问:是不是公钥不配对,也就是jiemi.xml不是加密的配对的公钥,就不能正常解密?
Yellow198267 2006-08-17
  • 打赏
  • 举报
回复
不会,帮顶
marysxj 2006-08-17
  • 打赏
  • 举报
回复
尝试将数字签名进行使用公钥的逆运算时候出现如下错误提示:
Base-64 字符数组的无效长度。
错误在这一行:byte[] done1 = rsa.Decrypt(Convert.FromBase64String(sStr),false);
marysxj 2006-08-17
  • 打赏
  • 举报
回复
争取下班前结帖!
marysxj 2006-08-17
  • 打赏
  • 举报
回复
谢谢楼上的帮顶!
继续!
C5662601 2006-08-17
  • 打赏
  • 举报
回复
xuexi
ytzz 2006-08-17
  • 打赏
  • 举报
回复
应该正确
marysxj 2006-08-17
  • 打赏
  • 举报
回复
沉了,自己顶!!

62,025

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧