前端RSA加密方法jsencrypt以及encryptlong

这篇具有很好参考价值的文章主要介绍了前端RSA加密方法jsencrypt以及encryptlong。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

jsencrypt和encryptlong都是rsa加密,加密的对象一定要是字符串。 简单数据用前者,如果加密的是对象并且数据还挺多的,比如含有token 用后者。

生成密钥:
RSA会产生两个密钥,其中公钥公开用于加密,私钥不公开用于解密。点击生成公钥密钥
NPM安装:
jsencrypt NPM地址
encryptlong NPM地址

npm install jsencrypt --save 
npm i encryptlong --save  
npm install --save js-base64    //  base64 解密 为了解决中文乱码

代码文件rsa.ts:

针对前端加密解密,公钥秘钥都存储前端不安全,一般也可采用两对公钥秘钥前后端分别使用前端(公钥A私钥B)后端(公钥B私钥A)。当然也可以采用其他混合加密,例如rsa+aes,rsa+base64等。

import JSEncrypt  from 'jsencrypt'
import Encrypt from 'encryptlong'
import { Base64 }from 'js-base64'

type RsaKeyObj = Record<'PublicKey'| 'PrivateKey',string>
type EncryptDecryptFunc<T> = (message: T) => string | false

const Rsa_Keys: RsaKeyObj = {
    PublicKey: '', // 公钥A
    PrivateKey: '' // 私钥B
}

// 公钥A加密
export const encrypt: EncryptDecryptFunc<String> = (message)=> {
    const encryptor = new JSEncrypt()
    encryptor.setPublicKey(Rsa_Keys.PublicKey)
    return encryptor.encrypt(message)
}

export const encryptObj: EncryptDecryptFunc<Object> = (message) => encrypt(JSON.stringify(message))

// 私钥B解密
export const decrypt: EncryptDecryptFunc<String> = (message)=> {
    const decryptor = new Encrypt() 
    decryptor.setPrivateKey(Rsa_Keys.PrivateKey)
    return decryptor.decryptLong(message)
}
// 后台数据是先包一层rsa加密 又包了一层base64加密 
// base64 解密decrypt数据 2次解密是为了rsa解密的乱码
export const decrypt64: EncryptDecryptFunc<String> = (message) => Base64.decode(decrypt(message))

使用:文章来源地址https://www.toymoban.com/news/detail-609543.html

import { encrypt, decrypt64 } from '@/utils/rsa'
const resultEncrypt = encrypt(JSON.stringify({ name: '', password: '' }))
const data = decrypt64(response.data)

到了这里,关于前端RSA加密方法jsencrypt以及encryptlong的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • WEB端RSA加密介绍,jsencrypt、node-forge、node-rsa用法及对比

    非对称加密算法:一般公钥加密,私钥解密。其实还有其他用法,详情参考RSA算法 对称加密算法:加密解密使用相同的密钥。 注意:jsencrypt 默认加密解密都 encode64 格式 库 browser Node.js 维护情况 jsencrypt ✅ ❌ ✅ node-forge ✅ ✅ ✅ node-rsa ✅ ✅ ❌ 注意:node-rsa不建议使用

    2024年02月16日
    浏览(30)
  • 前端使用jsencrypt实现RSA公钥解密——uniapp同样适用

    在node_modules目录下,根据如下路径找到rsa.js文件 jsencrypt/lib/lib/jsbn/rsa.js 1、修改 RSAKey.prototype.decrypt 方法(将doPrivate改为doPublic) 2、修改 rsa.js文件下的pkcs1unpad2方法 3、保存文件即可 保存修改后的rsa.js文件,一般情况下不需要重新编译也可生效,如有问题就重新build或serve一下

    2024年02月06日
    浏览(41)
  • vue前端RSA加密java后端解密的方法

    最近安全测试的总是测出安全漏洞来,让开发改。 想了想干脆把请求参数都加密下,前端加密后端解密,这样总差不多了。 看了下AES加密,是对称的,前后端用这个不太行。 于是想到用RSA加密,是非对称的,可以前端加密后端解密。 1.前端是vue项目,使用时,需要先执行:

    2023年04月21日
    浏览(37)
  • 前端js使用jsrsasign,生成RSA秘钥,获取一系列信息(公钥,私钥,模数,指数等)进行加密解密

    前言: 之前的项目里用的RSA加解密的时候是生成固定的公钥(模数,指数)和私钥放在代码里进行数据的解密。现在要修改成前端自己生成(模数和指数)传给后台。后台加密数据返回给我。我在用私钥解密。 后面查了很多,开始的window.crypto里的方法可以生成公钥和私钥,

    2024年02月16日
    浏览(54)
  • 前端使用RSA加密

    2024年01月25日
    浏览(23)
  • RSA加密:Web前端登录账户密码加密传输

        一般在做系统时候对安全性要求比较高,现在通常选择https协议来进行数据传输。很多情况下一般的javaweb网站,如果安全要求不是很高的话,用https协议就可以了。在这种情况下,密码的明文传输显然是不合适的,因为请求如果在传输过程中被截了,就可以直接拿明文密

    2024年02月10日
    浏览(38)
  • JS使用RSA非对称加密方式加密传输数据

    场景:出于安全考虑,要求对页面提交的关键信息进行加密,在网络传输过程中使用密文传递,在服务器端解密后使用。这样不管在浏览器端还是网络传输中截获了数据,都无法获取实际的信息。 方法:使用非对称加密算法,在前端页面使用公钥进行加密,在后端服务使用密

    2023年04月08日
    浏览(27)
  • RSA之前端加密后端解密

    RSA加密解密方式有: (1)公钥加密,私钥解密; (2)私钥加密,公钥解密; 此文章中以下我使用的是 前端公钥加密,后端私钥解密 ; http://web.chacuo.net/netrsakeypair 生成对应的公钥和私钥 前端加密js文件 : 链接: https://pan.baidu.com/s/1NIMayTcmjbMOf7BqPhPQoA 提取码: t7an 下载js文件并

    2024年02月21日
    浏览(41)
  • vue前端对密码进行Rsa加密

    在信息技术发达的信息化世界,我们的敏感信息在各个平台都已进行注册使用。例如我们支付宝的支付密码、微信的支付密码、电子银行的登陆密码、我们的个人身份信息等等都会被不法分子利用。为了保障我们的身份不被暴露以及账户财产安全,研发人员使用了很多加密算

    2024年02月13日
    浏览(42)
  • 使用非对称加密(RSA) 实现前端加密后端解密

    数据加密方式有: 单向加密、对称加密、非对称加密、加密盐、散列函数、数字签名。 1、单向加密 单向加密通过对数据进行摘要计算生成密文,密文不可逆推还原。只能加密,不能解密,常用于提取数据的指纹信息以此来验证数据的完整性。但是会引发雪崩效应(雪崩效应

    2024年02月08日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包