文档章节

RSA加解密含java版互转

朝如青丝暮成雪
 朝如青丝暮成雪
发布于 2017/05/16 13:30
字数 375
阅读 22
收藏 0

下面是RSA的帮助类文件封装

http://git.oschina.net/awith/RSAHelper

最近公司项目做Socket对接接口,对方是java写的,密钥什么的都是java版本,在c#上需要进行转换,对接起来真是麻烦死人,记录下来,以后用到用来参考。

注意:不排除封装的RSAHelper有BUG。

我也先声明下RSA的使用方法:

公钥加密,私钥解密。

公钥验签,私钥签名。

问题1:在java中签名时候有个SHA1withRSA进行签名,这个签名就是用SHA1的Hash值就行了,在c#中通常是MD5进行签名,因此采用的是MD5的Hash值。

问题2:注意加解密、和签名时需要不需要进行Base64加解密,我封装的这个里面全部没有采用Base64加解密,但在c#大部分都会采用Base64加解密。

问题3:密钥的转换,java版本和c#版本的密钥是不一样的,需要注意。RSAHelper中有密钥转换的方法。

基于封装的RSAHelper写个实例:

//签名

//得到hash描述_msg是要参与签名的文本,
byte[] hashData = RSACryption.GetSHA1Hash(_msg);

//得到签名域值
byte[] signData = RSACryption.RSASignData(conf.MyPrivKey, hashData);

//验证签名
bool temp = RSACryption.RSAVerifySign(conf.MSPubKey, HashData, signDataByte);

 //得到密文

RSACryption.RSAEncrypt(conf.MSPubKey, _msg);

//解密
string msg = RSACryption.RSADecrypt(conf.MyPrivKey, msgByte);

 

c#和java公私钥互转就不写了,很简单。不过需要Nuget一个BouncyCastle

注意加密格式和形式一般不会出现什么问题.

 

 

 

 

© 著作权归作者所有

朝如青丝暮成雪
粉丝 8
博文 133
码字总数 51509
作品 0
浦东
程序员
私信 提问
Android外部文件加解密及应用实践

有这样的应用场景,当我们把一些重要文件放到asset文件夹中时,把.apk解压是可以直接拿到这个文件的,一些涉及到重要信息的文件我们并不想被反编译拿去,这个时候需要先对文件进行加密,然后...

C6C
2018/05/08
0
0
.NET和java的RSA互通,仅此而已

.NET和java的RSA互通,仅此而已 在开始这篇文章之前,先请读者朋友阅读老唐的这两篇文章: 1、Java与.Net环境下RSA加密解密交互不成功的问题解决 2、Java与.Net环境下RSA加密解密交互不成功的...

lubiaopan
2011/03/09
0
0
浅析RSA公钥密码以及使用Java自带API实现RSA的密钥生成和加解密

RSA是目前最流行的非对称密码,目前广泛应用在数字签名,数字证书上。 那么什么是非对称密码呢?就是给明文加密的密钥和给密文解密的密钥是不一样的。其中,对外暴露的是公钥,自己保留的是私...

Lunqi
2015/07/15
0
1
Android网络传输中必用的两个加密算法:MD5 和 RSA (附java完成测试代码)

MD5和RSA是网络传输中最常用的两个算法,了解这两个算法原理后就能大致知道加密是怎么一回事了。但这两种算法使用环境有差异,刚好互补。 一、MD5算法 首先MD5是不可逆的,只能加密而不能解密...

yanzi1225627
2014/05/21
0
0
跟我学Spring Cloud(Finchley版)-21-Spring Cloud Config-配置属性加解密

前文都是将配置明文存储在Git仓库中,但在实际项目中,敏感的配置属性(例如数据库账号、密码等),都应加密存储,从而提高安全性。 Config Server为配置内容的加密与解密提供了支持。 安装J...

周立_ITMuch
02/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

springmvc集成cas,并解决前后端分离情况

1.最近项目需要集成已经存在的cas系统。 但是目前已集成的系统都是jsp。而我们项目是前后端分离开发(伪),没有分开部署。 2.cas原理就不介绍了 网上例子很多。基本都是使用302重定向实现的...

起名字什么的太麻烦了
29分钟前
3
0
HDFS-原理

1. 写操作

叶枫啦啦
今天
2
0
聊聊elasticsearch的MembershipAction

序 本文主要研究一下elasticsearch的MembershipAction MembershipAction elasticsearch-6.7.1/server/src/main/java/org/elasticsearch/discovery/zen/MembershipAction.java public class M......

go4it
今天
3
0
Redis集群

Redis cluster tutorial Redis集群提供一种方式自动将数据分布在多个Redis节点上。 Redis Cluster provides a way to run a Redis installation where data is automatically sharded acros......

OSC首席混子
今天
3
0
AWS codecommit 触发jenkins工作

在gitlab和github上面都有直接发送webhook的配置,但是在AWS上面是没有的直接配置webhook触发jenkins构建的设置的。 通过查看AWS多个service的官方文档,找到了解决方案,方案如下: (1)在c...

守护-创造
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部