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相关推荐

  1. Java实现非对称加密算法-RSA加解密

    RSA是由三位数学家Rivest.Shamir 和 Adleman 发明的非对称加密算法,这种算法非常可靠,秘钥越长,就越难破解. 目前被破解的最长RSA秘钥是768个二进制位,长度超过768位的秘钥 ...

  2. Java笔记-非对称加密RSA的使用

    使用OpenSSL生成对应RSA私钥和RSA公钥: #rsa私钥: genrsa -out rsa_private_key.pem 1024 pkcs8 -topk8 -inform PEM -in ...

  3. Java加密技术(四)——非对称加密算法RSA

    转自:http://snowolf.iteye.com/blog/381767 接下来我们介绍典型的非对称加密算法--RSA RSA     这种算法1978年就出现了,它是第一个既能用于数据加密也能 ...

  4. java js 非对称加密算法_Java加密技术(四)——非对称加密算法RSA

    Java非对称加密算法rsa 接下来我们介绍典型的非对称加密算法--RSA RSA 这种算法1978年就出现了,它是第一个既能用于数据加密也能用于数字签名的算法.它易于理解和操作,也很流行.算法的名字 ...

  5. Java进阶(七)Java加密技术之非对称加密算法RSA

    Java加密技术(四)--非对称加密算法RSA 非对称加密算法--RSA 基本概念 非对称加密算法是一种密钥的保密方法. 非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(priv ...

  6. 数据传输加密——非对称加密算法RSA+对称算法AES(适用于java,android和Web)

    本篇文章已授权微信公众号 guolin_blog (郭霖)独家发布 转载请注明出处:http://blog.csdn.net/chay_chan/article/details/58605605 数据 ...

  7. 非对称加密——RSA算法JAVA代码实践

    文章目录 说明 RSA加解密 测试代码 打印输出 说明 1:下面代码参考自<JAVA加密解密的艺术>,有部分修改,详见原理见原书 2:下面代码是RSA在JAVA中API级别的代码实现,具体 ...

  8. Java(110):非对称加密RSA的使用(KeyPair生成密钥)

    Java(110):非对称加密RSA的使用(KeyPair生成密钥) RSA 算法是一种非对称加解密算法.服务方生成一对 RSA 密钥,即公钥 + 私钥,将公钥提供给调用方,调用方使用公钥对数据进行加 ...

  9. Java(111):非对称加密RSA的使用(openssl生成RSA公私钥对)

    Java(111):非对称加密RSA的使用(openssl生成RSA公私钥对) 1.openssl生成RSA公私钥对 [root@loaclhost ~]# openssl version OpenS ...

最新文章

  1. 122112_1452_Word1
  2. Winforn中设置ZedGraph多条Y轴时曲线刻度不均匀问题解决
  3. 四因素三水平正交表_做论文要用正交表?我打包送给你
  4. 禁用任何未使用的端口com_CentOS7 - 使用Fail2ban保护SSH
  5. 2345电脑管家_PS教程第一节:如何正确安装PScc?安装前做好这一步电脑才不会卡顿....
  6. 思科修复严重的企业 NFVIS 缺陷
  7. Android游戏引擎汇总,android开发模拟器
  8. bp神经网络优化算法对比,bp神经网络的优化算法
  9. ubuntu系统鼠标右键没有新建文档的解决方案
  10. 大学计算机基础 - 第七章练习题
  11. TypeScript代理模式/委托模式
  12. 机器学习中的数学基础--特征函数与中心极限定理,统计学基本概念,极大似然估计,最大后验估计
  13. python报错:SyntaxError: Non-UTF-8 code starting with ‘\xe6‘ in file
  14. 攻克弹唱第七课(如何弹奏neon)
  15. 电脑连上网却无法使用浏览器,显示远程计算机或设备将不接受连接的解决办法
  16. this is related to npm not being able to find a file
  17. java quartz 重启不了_java – 重新启动quartz调度程序而不会出现错误
  18. 第6章 应用逻辑顺序
  19. ALSA应用层编程播放音乐
  20. Elasticsearch:shard 分配感知

热门文章

  1. 安卓平台运行python_在 android 上运行 python 的方法
  2. matlab表白_520新玩法!MATLAB大神教你画爱心
  3. CSS里面position:relative与position:absolute 区别
  4. c语言修改elf文件crc32,hash/crc32
  5. 计算机自动连续工作的基础是存储程序原理,计算机的存储程序工作原理是什么...
  6. wordpress模版post.php,WordPress主题开发手册
  7. 2021年春季学期-信号与系统-第十五次作业参考答案-第十一小题参考答案
  8. FIA2020会议准备相关工作
  9. 逐飞mini车样品说明
  10. 智能车竞赛云上比赛第二天