RSA的应用

RSA是一种非对称加密算法。现在,很多登陆表单的密码的都采用RSA加密,例如京东中的登陆使用公钥对密码进行加密

java使用RSA加密方式实现数据加密解密,需要首先产生私钥和公钥

测试代码

public static void main(String args[])

{

try {

RSADemo rsa=new RSADemo();

rsa.generateKey();

byte[] data=rsa.encrypt("luanpeng".getBytes());

byte[] data1=rsa.decrypt(data);

String str=new String(data1);

System.out.println(str);

} catch (Exception e) {

System.out.println(e.toString());

}

}

RSA工具类的实现

package com.lp.app.safe;

import java.security.*;

import java.security.interfaces.*;

import java.math.*;

public class RSADemo {

public RSADemo() {

}

PublicKey pbkey;

PrivateKey prkey;

public void generateKey() {

try {

KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA");

kpg.initialize(1024);

KeyPair kp = kpg.genKeyPair();

pbkey = kp.getPublic();

prkey = kp.getPrivate();

} catch (Exception e) {

}

}

//加密,需要公钥

public byte[] encrypt(byte[] ptext) throws Exception {

// 获取公钥及参数e,n

RSAPublicKey pbk = (RSAPublicKey)pbkey;

BigInteger e = pbk.getPublicExponent();

BigInteger n = pbk.getModulus();

// 获取明文m

BigInteger m = new BigInteger(ptext);

// 计算密文c

BigInteger c = m.modPow(e, n);

return c.toByteArray();

}

//使用私钥进行解密

public byte[] decrypt(byte[] ctext) throws Exception {

// 读取密文

BigInteger c = new BigInteger(ctext);

// 读取私钥

RSAPrivateKey prk = (RSAPrivateKey)prkey;

BigInteger d = prk.getPrivateExponent();

// 获取私钥参数及解密

BigInteger n = prk.getModulus();

BigInteger m = c.modPow(d, n);

// 显示解密结果

byte[] mt = m.toByteArray();

return mt;

}

}

总结

以上所述是小编给大家介绍的java使用RSA加密方式实现数据加密解密的代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对聚米学院网站的支持!

如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

java数据加密解密代码_java使用RSA加密方式实现数据加密解密的代码相关推荐

  1. java使用RSA加密方式实现数据加密解密

    全栈工程师开发手册 (作者:栾鹏) java教程全解 java使用RSA加密方式实现数据加密解密,需要首先产生私钥和公钥 测试代码 public static void main(String arg ...

  2. java c rsa解秘_Java的RSA加密,.net如何解密

    //这是Java加密的方法 string value="12345678123456781234567812345678"; string publickey="3081 ...

  3. java和python的SHA-1形式RSA加密方式代码互通

    说明: 由于只知道n和d两个参数,找了许久才找到对应的python方法来生成pem格式密钥对以及对字符串进行SHA-1方式加密签名 一.生成密钥对 1.openssl生成PKCS#1格式 openss ...

  4. python后端开发框架加密_Flask框架实现的前端RSA加密与后端Python解密功能详解

    本文实例讲述了Flask框架实现的前端RSA加密与后端Python解密功能.分享给大家供大家参考,具体如下: 前言 在使用 Flask 开发用户登录API的时候,我之前都是明文传输 username ...

  5. java使用RSA加密方式,实现数字签名

    全栈工程师开发手册 (作者:栾鹏) java教程全解 java使用RSA加密方式,实现数字签名.数字签名,使用私钥获取签名,使用公钥校验签名 测试代码 public static void main( ...

  6. python写网页前端交易rsa加密_Flask框架实现的前端RSA加密与后端Python解密功能详解!...

    本文实例讲述了Flask框架实现的前端RSA加密与后端Python解密功能.分享给大家供大家参考,具体如下: 前言 在使用 Flask 开发用户登录API的时候,我之前都是明文传输 username ...

  7. java rsa签名_Java使用RSA加密解密签名及校验

    由于项目要用到非对称加密解密签名校验什么的,于是参考<Java加密解密的艺术>写一个RSA进行加密解密签名及校验的Demo,代码很简单,特此分享! 一.项目截图 代码下载后,导入到ecli ...

  8. java rsa 验_Java使用RSA加密解密签名及校验

    RSA加密解密类: package com.ihep; import java.io.BufferedReader; import java.io.BufferedWriter; import jav ...

  9. java rsa 解密_Java中RSA加密解密的实现方法分析

    本文实例讲述了Java中RSA加密解密的实现方法.分享给大家供大家参考,具体如下: public static void main(String[] args) throws Exception { ...

最新文章

  1. java 连接池_初探数据库连接池
  2. Component Interface Tricky
  3. CentOS忘记密码
  4. 企业系统门户需要哪些模块_灵活用工平台SAAS系统有哪些功能模块
  5. Postman测试接口传入List类型的参数以及数组类型参数
  6. 我是如何带领团队开发项目的
  7. linux 静态库 解包,libcurl编译linux静态库及使用总结(编译成功库下载)
  8. 教你打通 Git 任督二脉
  9. 做数据中心,腾讯是认真的!
  10. 九章算法--寻找数组波峰
  11. python 使用 config 文件
  12. MATLAB DBSCAB简介
  13. 极力推荐--不错的delphi 学习网站与论坛---有待补充
  14. Flappy bird
  15. <Zhuuu_ZZ>Map接口和equals重写
  16. 湖北户外帐篷在野外户外需要注意的方面
  17. C++猜数字小游戏1.0.1版猜数字1.1---国庆特版(双人战斗版)
  18. 3Dmax怎么渲染AO图?云渲染AO图是什么?
  19. ppt6计算机考试,全国计算机考试第6章 过程.ppt
  20. php 扇面,扇面书法,四种章法让人赏心悦目

热门文章

  1. html本地载入缓存文件,Flutter中如何加载并预览本地的html文件的方法
  2. python开发基础戴歆第四章_第一阶段:Python开发基础 day04 课后练习
  3. Win11蓝屏100%不重启解决方法
  4. win7系统电脑d盘不见了的解决方法
  5. win7系统任务管理器如何强制关闭程序
  6. win7系统图标太大的缩小教程
  7. 腾讯视频下载电脑_腾讯视频如何设置允许腾讯视频驻留功能
  8. spring注解( @Autowired、@Qualifier、@Resource、@PostConstruct、@PreDestroy、 @Component、@Scope)-描述的比较清楚
  9. SpringBoot整合阿里云OSS上传文件
  10. HSSFworkbook,XSSFworkbook,SXSSFworkbook区别总结