频道栏目
首页 > 程序开发 > Web开发 > ASP.Net > 正文
ASP.NET(C#)-JAVA对接RSA加密签名-第三讲
2018-01-23 13:30:47         来源:MicrosoftDesigner的博客  
收藏   我要投稿

这一章呢,我们来看看Java如何实现RSA加密

啊?为什么?要想比较差别,当然得看看人家怎么加密的。

前面只讲了C#怎么实现RSA加密解密,签名验签,有关Java的也只是讲了如何去生成pem格式公钥私钥以及怎么转化,但是并没有讲解到Java与C#签名时候的注意点,尤其是对接。

这里就要说到本文的由来,对接一个项目,对方公司程序为java语言编写,我司程序为C#语言编写,对方提供的对接Demo中.NET程序居然无法正常运行,于是,我就找到对方技术人员提供可用的示例对接Demo,对方技术人员来了一句”我不懂.NET”。没毛病,我也不懂Java,我知道那种痛。所以为了不让更多人痛,我就写了这边文章。

这里提供一段Java代码,作用是实现RSA签名(真特么难啊,为了一个base64转码,搜了一上午解决方案)

\

箭头所指,是签名时候使用的算法,在C#中是没有"MD5WithRSA"这样的写法的,所以在这里提供一个参照表,在使用我写的加密帮助类时,的对应关系。

Java签名时

C#/.NET(签名枚举选择)

MD5WithRSA

EncryptType.MD5

SHA1WithRSA

EncryptType.SHA1

SHA256WithRSA

EncryptType.SHA256

SHA384WithRSA

EncryptType.SHA384

SHA512 WithRSA

EncryptType.SHA512

签名验证代码:(对应关系如同上表)

\

顺便提供一下Java实现RSA加密的方法:

加载公钥私钥(签名时候用的,前面忘了写了...):

\

\

实现加密解密(公钥加密,私钥解密):

\

\

测试方法:

使用运行Java代码加密,然后在C#中进行解密

使用Java签名数据,然后再C#中进行验证签名

注意过程中秘钥不要混淆,这里Java使用的PCKS8填充加密,所以在C#中生成的秘钥记得先转化为PCKS8填充模式的秘钥。

点击复制链接 与好友分享!回本站首页
上一篇:怎样解决asp.net上传文件超过了最大请求长度的问题
下一篇:在 .NET中,一种更方便操作配置项就教程
相关文章
图文推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站