数据安全管理:RSA加密算法,签名验签流程详解

发布时间:2020-07-19 11:44:08 作者:知了一笑
来源:网络 阅读:196

本文源码:GitHub·点这里 || GitEE·点这里

一、RSA算法简介

1、加密解密

RSA加密是一种非对称加密,在公开密钥加密和电子商业中RSA被广泛使用。可以在不直接传递密钥的情况下,完成加解密操作。这能够确保信息的安全性,避免了直接传递密钥所造成的被破解的风险。是由一对密钥来进行加解密的过程,分别称为公钥和私钥。该加密算法的原理就是对一极大整数做因数分解的困难性来保证安全性。

2、签名验签

数字签名就是信息的来源添加一段无法被伪造的加密字符串,这段数字串作为对信息的来源真实性的一个有效证明。这个过程称为签名和验签。

二、场景描述

1、加密解密过程

(1)、乙方生成一对密钥即公钥和私钥,私钥不公开,乙方自己持有,公钥为公开,甲方持有。

(2)、乙方收到甲方加密的消息,使用私钥对消息进行解密,获取明文。

2、签名验签过程

(1)、乙方收到消息后,需要回复甲方,用私钥对回复消息签名,并将消息明文和消息签名回复甲方。

(2)、甲方收到消息后,使用公钥进行验签,如果验签结果是正确的,则证明消息是乙方回复的。

三、源代码实现

1、密钥字符串获取

数据安全管理:RSA加密算法,签名验签流程详解

文件位置

public static final String PUB_KEY = "rsaKey/public.key" ;
public static final String PRI_KEY = "rsaKey/private.key" ;

文件加载

public static String getKey (String keyPlace) throws Exception {
    BufferedReader br= null;
    try {
        br= new BufferedReader(new InputStreamReader(RsaCryptUtil.class.getClassLoader().
                                                     getResourceAsStream(keyPlace)));
        String readLine= null;
        StringBuilder keyValue = new StringBuilder();
        while((readLine= br.readLine())!=null){
            if(!(readLine.charAt(0)=='-')){
                keyValue.append(readLine);
            }
        }
        return keyValue.toString();
    } catch (Exception e) {
        throw new Exception("RSA密钥读取错误",e) ;
    } finally{
        if (br != null) {
            try {
                br.close();
            } catch (Exception e) {
                System.out.println("密钥读取流关闭异常");
            }
        }
    }
}

2、公钥和私钥

3、加密和解密

4、签名和验签

5、编码和解码

/**
 * 字节数组转字符
 */
public static String printBase64Binary(byte[] bytes) {
    return DatatypeConverter.printBase64Binary(bytes);
}
/**
 * 字符转字节数组
 */
public static byte[] parseBase64Binary(String value) {
    return DatatypeConverter.parseBase64Binary(value);
}

6、测试代码块

四、源代码地址

GitHub·地址
https://github.com/cicadasmile
GitEE·地址
https://gitee.com/cicadasmile

数据安全管理:RSA加密算法,签名验签流程详解

推荐阅读:
  1. 简述签名验签
  2. 数字证书应用综合揭秘(包括证书生成、加密、解密、签名、验签)

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

java 加密解密 编码解密

上一篇:你真的了解WebSocket吗?

下一篇:11g RAC集群启动关闭、各种资源检查、配置信息查看汇总。

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》