ASP.NET(C#)-JAVA对接RSA加密签名-第三讲
这一章呢,我们来看看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填充模式的秘钥。
上一篇: Oracle误删除表数据后的数据恢复详解
下一篇: asp.net用三层实现多条件检索