RSA公钥加密在小程序中的小问题

阅读: 评论:0

RSA公钥加密在⼩程序中的⼩问题
RSA公钥加密在⼩程序中的⼩问题
简介: RSA加密算法是⼀种⾮对称加密算法.
1. RSA加密/解密规则:
1. 使⽤公钥加密的数据,利⽤私钥进⾏解密
2. 使⽤私钥加密的数据,利⽤公钥进⾏解密
2.RSA加密的优缺点:
优点:打破了以往的加密规则,在RSA出现之前,所有的加密都是使⽤同⼀种⽅式.在传递加密信息时,必须让接收⽅拿到解密的规则才能解密.由于加密解密的规则⼀致,所以保存和传递"密钥",就会产⽣弊端。
缺点:由于RSA算法的原理都是⼤数计算,相对于对称加密算法慢上好⼏倍。速度⼀直是RSA的缺陷,⼀般来说RSA只⽤于⼩数据的加
密.RSA的速度是对应同样安全级别的对称加密算法的1/1000左右。
<!--引⽤cdn地址或者本地的jsencrypt.js-->
<script src="/jsencrypt/3.0.0-beta.1/jsencrypt.js"></script>
<script type="text/javascript">
//公钥(在liunx环境中可使⽤openssl命令...)
let PUBLIC_KEY='';
//使⽤公钥加密
let encrypt =new JSEncrypt();
// 注意设置公钥需要带上-----BEGIN PUBLIC KEY----- 和 -----END PUBLIC KEY-----
encrypt.setPublicKey('-----BEGIN PUBLIC KEY-----'+PUBLIC_KEY+'-----END PUBLIC KEY-----');
let encrypted = pt('cp123');
console.log("encrypted:",encrypted)
</script>
项⽬案例⼆(⼩程序):
1.⾸先我们下载的jsencrypt不兼容⼩程序, 需修改加密⽂件重命名wxapp_rsa.js, (地址:)
2.封装⼀个encryption.js的⽂件(如下).
//引⽤下本地的wxapp_rsa⽂件
import RSA from'../utils/wxapp_rsa.js'
//公钥
const PUBLIC_KEY='';
function Encryption(word){
let encrypt_rsa =new RSA.RSAKey();
encrypt_rsa =Key('-----BEGIN PUBLIC KEY-----'+PUBLIC_KEY+'-----END PUBLIC KEY-----');
let encStr = pt(word)
// 是否进⾏base64转换
// encStr = RSA.hex2b64(encStr);
return encStr
}
export default{
Encryption
}
3.引⽤该⽂件,调⽤Encryption⽅法(以下参考),将整个参数作为⼀个加密对象.
let dataParams = en.Encryption(JSON.stringify(options.data))
url: options.url,
// data: options.data,
data:{
wxdatawx: dataParams
},
~到这⾥所有的步骤都已经完成 ,执⾏发现这⾥出现报错: Message too long for RSA
这是因为我们的jsencrypt⽂件加密字段长度不⼤于117,因为我们需要再次解决问题
总结上述(⼩程序和html都会遇到Message too long for RSA问题):
因此,此时我们需要安装基于jsencrypt 扩展长⽂本分段加解密功能的encryptlong(npm i encryptlong -S)⽂件.引⽤安装好的jsencrypt⽂件,调⽤encryptLong⽅法即可
import JSEncrypt from'../utils/jsencrypt.js'
//公钥
const PUBLIC_KEY='';
function Encryption(word){
let encryptor =new JSEncrypt()
encryptor.setPublicKey('-----BEGIN PUBLIC KEY-----'+PUBLIC_KEY+'-----END PUBLIC KEY-----');
let cptData = ptLong(word)
return cptData
}
export default{
Encryption
}
⾄此,我们⼩程序RSA加密功能完成!

本文发布于:2023-05-08 17:52:55,感谢您对本站的认可!

本文链接:https://patent.en369.cn/patent/2/91971.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:加密   程序   公钥   对称   需要
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 369专利查询检索平台 豫ICP备2021025688号-20 网站地图