如何验证数字签名???

sunxuwen 2004-12-19 04:02:08
已知对方:

1。用MD5WithRSA做数字签名,签名长度:1024

2。原字符串:Hello World!

3。公钥用X.509格式表示

4。数字签名(是文本字符串):
01000100B4DA2089EFAD5B7CEF703613EB46D5123FB32281062D9951C04E7AC1C48A78217928E6ECBF16E6F6DD085078A13B32EAFC94F6D242BEE2039664BFCC25AD61BAC781B9F0AD829007F6532D4B939E159D86743E81D4CB7F37AEA744875EDC3248ADFBA4B269E856EDA9C974E94DC0F3AE1EBAD46327B12776D41E4DE5540CD57B191A4D4E5AEF62E1B60CA112EB8CAB2685F5BAF35525C2A8B8CBC129FFD5DC846987ACDD4A3B2FCB40F40C81D4CB44AF3EF00F587158B024A7B834D693A38F2DF5E3A2BA814133EDEC2780597575D9F181150C145A6DA3300CB26F0C0671A8A9313A1439997F7556B96B23C0D3B93D4522444F2505F377FB08D894A0EF4FE7C3
数字签名算法说明
银行将客户支付信息实时通知给商户时,使用的数字签名算法是MD5withRSA算法。商户验证签名的公钥在商户在网银系统开户,获取数字证书后,登录到网银系统中,通过下载公钥交易获取。

商户获取的公钥用X.509格式表示,并且将其按照每4位(bit)转换为一个16进制数的方式表示,产生16进制的字符串。

网上银行使用标准MD5withRSA算法对给商户的响应进行签名,产生1024位(bit)的签名结果,并且将其按照每4位(bit)转换为一个16进制数的方式表示,形成16进制的字符串,长度为256。

下面是对签名结果的表示方式的描述:
1、 对1024位的交易结果按4位为一个单位进行划分,共获得256段
2、 将每段看成一个16进制数,如0011为0X3,1101为0Xd。
3、 将这个数映射到ASCII码表,形成相应的字符,如0X2为“2”,0Xd为“d”。
4、 将这些字符连成一个字符串,长度为256。


有了以上数据,请问如何进行数字签名验证?
...全文
442 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Yujlyjl 2005-01-13
  • 打赏
  • 举报
回复
没有做过 !
sunxuwen 2004-12-20
  • 打赏
  • 举报
回复
晕~~~
viano 2004-12-19
  • 打赏
  • 举报
回复



没有做过 !

50,527

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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