RSA加密Jsencrypt

本文介绍了RSA加密算法的基本原理,包括其非对称特性和密钥生成方式。在后端,提供了使用Java实现的RSA工具类,而在前端,展示了如何利用jsencrypt库进行加密操作。文章还给出了在线加密解密工具和相关npm包的链接,便于开发者实践。
摘要由CSDN通过智能技术生成

江南无所有,聊赠一枝春


一、概述

RSA加密算法是一种非对称加密算法,使用了“一对”密钥,使用公钥加密的数据,利用私钥进行解密,反之相反。
在这里插入图片描述

官网: http://travistidwell.com/jsencrypt/
Npm文档: https://www.npmjs.com/package/jsencrypt
Demo: http://travistidwell.com/jsencrypt/demo/


二、RSA秘钥生成方式

1. 在线RSA加密/解密工具: http://tools.jb51.net/password/rsa_encode

2. 终端命令

# 进入目录
cd 【目标文件夹】

# 生成私钥,密钥长度为1024bit
openssl genrsa -out private.pem 1024

# 从私钥中提取公钥
openssl rsa -in private.pem -pubout -out public.pem

# 生成了private.pem 和 public.pem两个文件

三、后端

工具类:

public class RsaUtil {
    private static final String PRIVATE_KEY_BASE64 ="MIIBNwIBAAJAZpDEyYjfnQoUfCOusIKo0O5AhtQtt8fij61t+gxexgO7Pui80SBaAsAU2J1DmaCaPTzGfZVBfOEdtHk1Mp1UrQIDAQABAj865OYa032TrzYUEmk88cn+LtDemvelkCGIXw3Hh1LkYIR+7KOu+JITesXoQnvqi+opS4G22ujQW/p+GBJZ/lUCIQC4YqaT20vZ9K/w2/fu9tpvuJb8pC1l7W6hAaKm+k2CnwIhAI5mzvxdQcWiALrSyvZJ54yM/XEEUCHL7n6ytjnaKFEzAiBR2VjgoaRWKExBuyOgLGxi06oSlD6i1HcbecJeJRZrOQIgCVqlhBxYIrRWme8Y1/7Yz/m++DqRTPcJbpcsszYqadMCICcldNOG/CF3Iy0OEQLKQrtpJU4ab3YoYD4c5jg8kaXT";
    private static final RSA rsa = new RSA(PRIVATE_KEY_BASE64);

    /**
     * 私有化构造方法
     */
    private RsaUtil() {
    }

    public static String deCodeByPrivateKey(String enpw) {
        return rsa.decryptStr(enpw);
    }
}

四、前端

# 安装
npm install jsencrypt@2.3.1

工具类:

import { JSEncrypt } from 'jsencrypt'

function getEncrypt(data) {
	let encrypt = new JSEncrypt();
	encrypt.setPublicKey("MFswDQYJKoZIhvcNAQEBBQADSgAwRwJAZpDEyYjfnQoUfCOusIKo0O5AhtQtt8fij61t+gxexgO7Pui80SBaAsAU2J1DmaCaPTzGfZVBfOEdtHk1Mp1UrQIDAQAB");
	return encrypt.encrypt(data);
}
export{
	getEncrypt,
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

后海 0_o

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值