全栈工程师开发手册 (作者:栾鹏)
java教程全解

java使用RSA加密方式,实现数字签名。数字签名,使用私钥获取签名,使用公钥校验签名

测试代码

public static void main(String args[]) throws Exception{DigitalSignDemo ds=new DigitalSignDemo();ds.generateKey();  //产生私钥和公钥byte[] signeddata=ds.sign("test.txt");   //文件签名// 打印签名for(int i=0; i<signeddata.length; i++){System.out.println(signeddata[i]);}ds.checkSign("test.txt",signeddata);  //校验签名}

数字签名工具类的实现

package com.lp.app.safe;import java.io.*;
import java.security.*;
import java.security.interfaces.*;public class DigitalSignDemo{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[] sign(String path) throws Exception{//获取要签名的数据FileInputStream f = new FileInputStream(path);int num = f.available();byte[] data = new byte[num];f.read(data);// 获取私钥RSAPrivateKey prk = (RSAPrivateKey)prkey;Signature s = Signature.getInstance("MD5WithRSA");s.initSign(prk);s.update(data);//数据签名byte[] signeddata = s.sign();return signeddata;}//校验签名public void checkSign(String path,byte[] signeddata) throws Exception{FileInputStream f = new FileInputStream(path);int num = f.available();byte[] data = new byte[num];f.read(data);// 读公钥RSAPublicKey pbk = (RSAPublicKey)pbkey;// 获取对象Signature s = Signature.getInstance("MD5WithRSA");//初始化s.initVerify(pbk);// 传入原始数据s.update(data);boolean ok = false;try{//用签名验证原始数据ok = s.verify(signeddata);System.out.println(ok);}catch(SignatureException e){System.out.println(e);}System.out.println("校验结束!");}}

java使用RSA加密方式,实现数字签名相关推荐

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

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

  2. Java实现RSA加密解密、数字签名及验签

    RSA公钥加密算法是1977年由罗纳德-李维斯特(Ron Rivest).阿迪-萨莫尔(Adi Shamir)和伦纳德-阿德曼(Leonard Adleman)一起提出的.当时他们三人都在麻省理工学院 ...

  3. java数据加密解密代码_java使用RSA加密方式实现数据加密解密的代码

    RSA的应用 RSA是一种非对称加密算法.现在,很多登陆表单的密码的都采用RSA加密,例如京东中的登陆使用公钥对密码进行加密 java使用RSA加密方式实现数据加密解密,需要首先产生私钥和公钥 测试代 ...

  4. 条理清晰的入门:使用Java实现RSA加密解密

    条理清晰的入门:使用Java实现RSA加密解密 什么是RSA 使用Java 需要导入的头文件 生成公钥.私钥 进行加密解密 密钥的存储 密文的存储.读取 什么是RSA 翻一下以前的密码学笔记,找到了! ...

  5. javascript rsa java,用javascript与java执行 RSA加密与解密

    用javascript与java执行 RSA加密与解密 2009-12-12 14:58:30   出处:https://www.yqdown.com 这几天一直做安全登录,网上查了好多资料,不尽如意 ...

  6. java使用DES加密方式,实现对数据的加密解密

    全栈工程师开发手册 (作者:栾鹏) java教程全解 java使用DES加密方式,实现对数据的加密解密.加密和解密中需要使用同一个秘钥 第一种方式,使用类型Key作为加密解密的共同秘钥. 测试代码 p ...

  7. RSA加密解密及数字签名Java实现--转

    RSA公钥加密算法是1977年由罗纳德·李维斯特(Ron Rivest).阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)一起提出的.当时他们三人都在麻省理工学院 ...

  8. python vs java的rsa加密

    首先:java的加密解密模块需要更加精细的算法细节指定 java的加密方式 javax.crypto.Cipher,定义的获取方式 tatic Cipher getInstance(String tr ...

  9. php和java之间rsa加密互通

    以下是php封装好的类,引入即可使用 <?php /*** 作者:pjp* 邮箱:vippjp@163.com*/ class RSA{private $privateKey='';//私钥(用 ...

最新文章

  1. Lucene 对文档打分的规则整理记录
  2. stm32 无符号整形_STM32中“unsigned short”和“unsigned int”的区别是什么?
  3. netcore读取json文件_【NET Core】.NET Core中读取json配置文件
  4. python 中的三元表达式(三目运算符)
  5. 行为型设计模式(5)—— 策略模式(Strategy Pattern)
  6. java 获取保存存储路径配置文件
  7. HL-USB TO RS232驱动
  8. 2022-2028全球硬件加密行业调研及趋势分析报告
  9. 华夏互联十年网站开发经验-只为更专业
  10. 手机TF 卡 无法读取,提示需要格式化
  11. mac m1 解决fatal: unable to access ‘https://github.com/Homebrew/homebrew-core/‘ ;同时指定intel架构的brew 版本
  12. CF1326E Bombs(思维题)
  13. U盘安装ubuntu 16.04 遇到 gfxboot.c32:not a COM32R image boot 的解决方法
  14. 3C认证和CQC认证怎么区分,详解
  15. Mysql Where条件执行顺序是从左到右
  16. 微信公众平台如何给粉丝分组打标签?
  17. 【转】Ogitor中Gizmo的绘制技巧 - 战魂小筑 - C++博客
  18. 今天第一次电面,国信证券金融工程
  19. 如何适配处理iphoneX底部的横条 - ios
  20. 微信公众号怎样获取用户基本信息(含是否已关注)

热门文章

  1. python全套教程-老王Python全套教程完整版
  2. 手握14万,博越是最佳选?这车配钢炮动力,可双屏互动,不香?
  3. php mysql mysql_set_charset()._PHP:MySQL函数mysql_set_charset()的用法
  4. express-art-template模板引擎(详细)
  5. 计算机网络管理人员理论A卷,2011年上半年计算机网络管理员(三级)理论鉴定试题A...
  6. 编译运行Red5源代码
  7. mysql in memory_In-Memory:内存数据库
  8. mysql 只开放某个表_MySQL只恢复某个库或某张表
  9. 计算机睡眠功能命令,windows睡眠命令怎么使用
  10. 【PAT乙】1004 成绩排名 (20分) struct结构