Java使用非对称数据加密RSA
emmmmmm就是呢,我今天研究了一下非对称数据加密RSA的使用,算法什么的暂时不研究,加密算法还有很多,以后再研究吧,就酱(>人<;)。非对称加密算法需要两个密钥:公开密钥(publicKey)和私有密钥(privateKey);如果用公有密钥加密,对应的就是要私有密钥才能解密;反过来就是私钥加密,公钥解密。
然后就来实现一下RSA加密的工具类吧
注意:RSA加密明文最大长度是117字节,解密要求密文最大长度为128字节,所以再加密和解密的时候要分段进行,就是每117字节就加密,然后再把这一节节拼起来。
public class AES_RSAUtil {public static void main(String[] args) throws Exception{/*模拟客户端*/String msg = "hello 冬竹";byte[] key = AESUtil.getKeys();//获取密钥的编码byte[] bytes = AESUtil.encrypt(msg,key);String seKey = Base64.encodeBase64URLSafeString(key);//转成字符串之后进行再加密RSAUtil.init();//RSA公钥 加密后的 AES密钥String encryptKey = RSAUtil.encryptByPublicKey(seKey,RSAUtil.getPublicKey(RSAUtil.keyMap.get("PUBLIC_KEY")));/*模拟服务端*///解码AES密钥String aesKey = RSAUtil.decryptByPrivateKey(encryptKey,RSAUtil.getPrivateKey(RSAUtil.keyMap.get("PRIVATE_KEY")));//还原aesKeybyte[] secretKey = Base64.decodeBase64(aesKey);String ming = new String(AESUtil.decrypt(bytes,secretKey));System.out.println(ming);}
}
加密字符串的过程:
1. msg.getBytes() 获得字符数组, 然后用rsaSplitCode() 方法加密,再用encodeBase64URLSafeString编码成字符串(密文)
解密字符串的过程:
1. decodeBase64() 把密文解码成字符数组,再用new String()方法转为字符串
然后我用的Base64类是commons-net-3.1.jar 里的,这个是我的maven仓库里(maven真的太方便了(●ˇ∀ˇ●))
放上这个:https://github.com/MoisAbby/XZUtils, 以后会把我攒的好用的东西都放上来
转载于:https://www.cnblogs.com/MoisAbby/p/8443425.html
Java使用非对称数据加密RSA相关推荐
- Java实现非对称加密算法-RSA加解密
RSA是由三位数学家Rivest.Shamir 和 Adleman 发明的非对称加密算法,这种算法非常可靠,秘钥越长,就越难破解. 目前被破解的最长RSA秘钥是768个二进制位,长度超过768位的秘钥 ...
- Java笔记-非对称加密RSA的使用
使用OpenSSL生成对应RSA私钥和RSA公钥: #rsa私钥: genrsa -out rsa_private_key.pem 1024 pkcs8 -topk8 -inform PEM -in ...
- Java加密技术(四)——非对称加密算法RSA
转自:http://snowolf.iteye.com/blog/381767 接下来我们介绍典型的非对称加密算法--RSA RSA 这种算法1978年就出现了,它是第一个既能用于数据加密也能 ...
- java js 非对称加密算法_Java加密技术(四)——非对称加密算法RSA
Java非对称加密算法rsa 接下来我们介绍典型的非对称加密算法--RSA RSA 这种算法1978年就出现了,它是第一个既能用于数据加密也能用于数字签名的算法.它易于理解和操作,也很流行.算法的名字 ...
- Java进阶(七)Java加密技术之非对称加密算法RSA
Java加密技术(四)--非对称加密算法RSA 非对称加密算法--RSA 基本概念 非对称加密算法是一种密钥的保密方法. 非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(priv ...
- 数据传输加密——非对称加密算法RSA+对称算法AES(适用于java,android和Web)
本篇文章已授权微信公众号 guolin_blog (郭霖)独家发布 转载请注明出处:http://blog.csdn.net/chay_chan/article/details/58605605 数据 ...
- 非对称加密——RSA算法JAVA代码实践
文章目录 说明 RSA加解密 测试代码 打印输出 说明 1:下面代码参考自<JAVA加密解密的艺术>,有部分修改,详见原理见原书 2:下面代码是RSA在JAVA中API级别的代码实现,具体 ...
- Java(110):非对称加密RSA的使用(KeyPair生成密钥)
Java(110):非对称加密RSA的使用(KeyPair生成密钥) RSA 算法是一种非对称加解密算法.服务方生成一对 RSA 密钥,即公钥 + 私钥,将公钥提供给调用方,调用方使用公钥对数据进行加 ...
- Java(111):非对称加密RSA的使用(openssl生成RSA公私钥对)
Java(111):非对称加密RSA的使用(openssl生成RSA公私钥对) 1.openssl生成RSA公私钥对 [root@loaclhost ~]# openssl version OpenS ...
最新文章
- 122112_1452_Word1
- Winforn中设置ZedGraph多条Y轴时曲线刻度不均匀问题解决
- 四因素三水平正交表_做论文要用正交表?我打包送给你
- 禁用任何未使用的端口com_CentOS7 - 使用Fail2ban保护SSH
- 2345电脑管家_PS教程第一节:如何正确安装PScc?安装前做好这一步电脑才不会卡顿....
- 思科修复严重的企业 NFVIS 缺陷
- Android游戏引擎汇总,android开发模拟器
- bp神经网络优化算法对比,bp神经网络的优化算法
- ubuntu系统鼠标右键没有新建文档的解决方案
- 大学计算机基础 - 第七章练习题
- TypeScript代理模式/委托模式
- 机器学习中的数学基础--特征函数与中心极限定理,统计学基本概念,极大似然估计,最大后验估计
- python报错:SyntaxError: Non-UTF-8 code starting with ‘\xe6‘ in file
- 攻克弹唱第七课(如何弹奏neon)
- 电脑连上网却无法使用浏览器,显示远程计算机或设备将不接受连接的解决办法
- this is related to npm not being able to find a file
- java quartz 重启不了_java – 重新启动quartz调度程序而不会出现错误
- 第6章 应用逻辑顺序
- ALSA应用层编程播放音乐
- Elasticsearch:shard 分配感知
热门文章
- 安卓平台运行python_在 android 上运行 python 的方法
- matlab表白_520新玩法!MATLAB大神教你画爱心
- CSS里面position:relative与position:absolute 区别
- c语言修改elf文件crc32,hash/crc32
- 计算机自动连续工作的基础是存储程序原理,计算机的存储程序工作原理是什么...
- wordpress模版post.php,WordPress主题开发手册
- 2021年春季学期-信号与系统-第十五次作业参考答案-第十一小题参考答案
- FIA2020会议准备相关工作
- 逐飞mini车样品说明
- 智能车竞赛云上比赛第二天