首页 > 其他分享 >前端rsa加密与解密

前端rsa加密与解密

时间:2023-07-05 15:25:21浏览次数:28  
标签:公钥 私钥 rsa 解密 ----- var 加密 jsencrypt

RSA加密一般是公钥加密私钥解密,多用于前台公钥加密传参给后台,后台私钥解密。

使用RSA加密时需要用到jsencrypt,本文会介绍怎么安装及使用。

1. 安装jsencrypt

 npm install jsencrypt

2. 使用方法

  1. 引入包
import JSEncrypt from 'jsencrypt'
  1. 加密
 var encryptor = new JSEncrypt()  // 创建加密对象实例
  //公钥,复制的时候要小心不要有空格
  var pubKey = '-----BEGIN PUBLIC KEY-----MIGfMA0......AQAB-----END PUBLIC KEY-----'
  encryptor.setPublicKey(pubKey)//设置公钥
  var rsaPassWord = encryptor.encrypt('要加密的内容')  // 对内容进行加密
  1. 解密
  var decrypt = new JSEncrypt()//创建解密对象实例
  //生成的秘钥私钥
  var priKey  = '-----BEGIN RSA PRIVATE KEY-----MIICXAIBA......AKBgQC1QQWRk=-----END RSA PRIVATE KEY----'
  decrypt.setPrivateKey(priKey)//设置秘钥
  var uncrypted = decrypt.decrypt(encrypted)//解密之前拿公钥加密的内容

3. 密钥生成

Mac系统内置OpenSSL(开源加密库),所以可以直接在终端上使用命令

Windows系统可以使用git命令行工具(这里注意使用git bash输入命令行,cmd和powershell识别不了命令行)

  • 生成私钥,密钥长度为1024bit
openssl genrsa -out private.pem 1024
  • 从私钥中提取公钥
openssl rsa -in private.pem -pubout -out public.pem

私钥和公钥生成成功后,在项目中会生成两个文件,private.pem 和 public.pem

注意:

加密的对象一定要是字符串 如果你加密的是密码 则npm i jsencrypt 即可
如果加密的是对象并且数据还挺多的 比如含有token 用npm i encryptlong -S
npm i jsencrypt加密长对象将返回false 或者报Message too long for RSA.

标签:公钥,私钥,rsa,解密,-----,var,加密,jsencrypt
From: https://www.cnblogs.com/Cxymds/p/17528610.html

相关文章

  • 在线JS代码混淆加密工具真的能实现JS代码加密吗?
    很多时候我们网站的JS代码都有被拷贝的风险,于是JS代码混淆加密这种能避免大部分复制的方法便出现了,可以对自己的JS加密,加密后达到安全的作用,不用担心自己辛辛苦苦写的JS给别人抄袭了。然而一段JS代码要是自己去编辑加密的话就有点费时费力了,目前加密工具也非常多,在线JS代码混淆......
  • 【论文阅读】Pyramid Vision Transformer: A Versatile Backbone for Dense Predictio
    来自ICCV2021论文地址:[2102.12122]PyramidVisionTransformer:AVersatileBackboneforDensePredictionwithoutConvolutions(arxiv.org)代码地址:https://link.zhihu.com/?target=https%3A//github.com/whai362/PVT一、Motivation1.将金字塔结构引入视觉Transformer,使......
  • java、vue基于hutool的aes指定秘钥加密(前后端aes加解密)
     后端代码//加密data对称AESKeybyte[]key=getBytes("._^BV67nW6ck8fwg",16);//秘钥长度最好是16位SymmetricCryptoaes=newSymmetricCrypto(SymmetricAlgorithm.AES,key);Stringjsondata=aes.encryptHex("中国test");System.out.println(jsondata);//......
  • js代码加密,保护js文件刻不容缓
    随着互联网的高速发展,网站运行的javaSCRIPT代码常常被别人轻易的拷贝,因此程序员不得不对想办法保护自的代码---javascript加密。现在网络上面有太多的拿来主义,当然这也是没有办法避免的一种现象,网络的开放性使得一切都没有什么秘密可言,所以代码加密便顺应而产生。js代码加密,保护......
  • C#.NET Framework 使用BC库(BouncyCastle) RSA 私钥签名 公钥验签(验证签名) ver:20230704
    C#.NETFramework使用BC库(BouncyCastle)RSA私钥签名公钥验签(验证签名)ver:20230704 环境说明:.NETFramework4.6的控制台程序 。 2020年以后,有部分PKCS8私钥(openssl生成)无法用RsaUtil.LoadPrivateKey(strPriPkcs8, "PKCS8")来解析 (https://www.cnblogs.com/runliuv......
  • jar-project 代码加壳加密工具【开源】
    开源地址:https://gitee.com/chejiangyi/jar-protect介绍java本身是开放性极强的语言,代码也容易被反编译,没有语言层面的一些常规保护机制,jar包很容易被反编译和破解。受classfinal(已停止维护)设计启发,针对springboot日常项目开发,重新编写安全可靠的jar包加壳加密技术,用于......
  • 2023最新php goto完全解密系统程序
    PHPGOTO加密代码一度被认为是程序员的一大难题,但随着技术的不断进步,现在有了一款神奇的工具来解决这个问题。这款PHPGOTO解密工具拥有强大的功能,能够轻松解密和还原GOTO语句,让你的程序恢复到最初的状态。完整有效解密还原源码goto解密,基本做到免修复直接可用。Windows电脑版:https......
  • 《加密与解密》- 第3章 - 静态分析技术 - 笔记
    PDF版本https://www.aliyundrive.com/s/xyrJmVkc7eS......
  • 记一次.net加密神器 Eazfuscator.NET 2023.2 最新版 使用尝试
    合集-.net代码混淆加密产权保护(2) 1.记一次.net加密神器Eazfuscator.NET2023.2最新版使用尝试06-272.将SmartAssembly与单文件可执行文件一起使用(.NETCore6)06-27收起 很多人看到这个Eazfuscator.NET还不知是什么东东。。。首先介绍下。什么是Eazfu......
  • jsjiami.v6加密混淆逆向分析介绍
    在互联网的不断发展的今天,网站的安全性越来越受到重视。JS混淆加密技术是一种常用的保护网站安全的手段。jsjiami.v6是一款常用的JS混淆加密工具,下面我们来详细了解一下。首先,我们来看一下一个使用jsjiami.v6进行混淆加密的案例代码:eval(function(p,a,c,k,e,r){e=function(c){re......