微信小程序前端RSA加解密

 开门见山地说,希望各位前端不要搜到这篇文章,因为我总感觉在小程序端去做RSA的加解密总有种脱了裤子放屁多此一举的感觉。但是需求来的时候总是说不准的,接下来我就给大家推荐一种在小程序端比较方便,操作不太多的RSA加解密方法给大家。
 我推荐的方法是使用:wxmp-rsa,Github上有他的正版介绍,他可以支持网页端和小程序,下面我主要介绍其在小程序上的使用方法。

  • 他是一个前端rsa加解密工具。
  • 基于jsencrypt修改扩展功能。兼容小程序环境,压缩后60kb左右的大小,节省小程序空间。
  • 支持超长文本加解密。
  • 支持中文字符的加解密。

  正式开始前先确保自己的小程序编译环境可以使用npm命令

在这里插入图片描述

1.安装
  选择小程序的调试器——》选择终端——》输入npm i wxmp-rsa -S进行安装
在这里插入图片描述
  安装完成后小程序目录里面会生成node_modules文件夹,里面会有wxmp-rsa文件夹
在这里插入图片描述

2.构建npm
  安装完成后在编辑器左上角的菜单栏中找到工具——》构建npm
在这里插入图片描述

  完成后小程序文件目录会构建出miniprogram_npm文件夹,里面会有wxmp-rsa文件夹
在这里插入图片描述

3.具体使用方法
  在具体要实现的js文件中导入包,并完成实例化

// 导入包
import WxmpRsa from 'wxmp-rsa'
// 实例化rsa
const rsa = new WxmpRsa()

4.加密
  加密需要使用公钥

// 定义待加密的字符串
const str = '{"id":"3254325423dsadsa"}'
// 定义公钥
const publicKey = `
  -----BEGIN PUBLIC KEY-----
  MIGeMA0GCSqGSIb3DQEBAQUAA4GMADCBiAKBgFnWSUwsmGawhMJ30z6y5li2jcf1
  m7rPMZcwZOS3To8bk3OBaMGhVEc1F8GtJBbc1rn/HCLNL9zrCy21EefJON8tRFcY
  HnpseZSzh+349lIhS+MFw9x4JUddwSPDyxwha929cKzMuVoftu3CJ+kqDBVvxLk7
  iDBzUMqW3Kgehk2TAgMBAAE=
  -----END PUBLIC KEY-----
`
// 设置公钥
rsa.setPublicKey(publicKey)
// 加密
const cryptStr = rsa.encryptLong(str)
console.log('加密后的结果:', cryptStr)

5.解密
  解密需要使用公钥对应的私钥

// 定义私钥
const privateKey = `
-----BEGIN RSA PRIVATE KEY-----
MIICWgIBAAKBgFnWSUwsmGawhMJ30z6y5li2jcf1m7rPMZcwZOS3To8bk3OBaMGh
VEc1F8GtJBbc1rn/HCLNL9zrCy21EefJON8tRFcYHnpseZSzh+349lIhS+MFw9x4
JUddwSPDyxwha929cKzMuVoftu3CJ+kqDBVvxLk7iDBzUMqW3Kgehk2TAgMBAAEC
gYBRChPeyk/EOrHX912xLpLKLguh+LY9g1B50ScChzUvtTGDPZaxLQYoogVHKhfn
I9nzuOS5pBzsDX9tAO0hCQzqfHgqRjn+vEgm1Ui+f0E3BVRnhobcJKZpZqlvCBR5
Gu2+zlrY4SeGq3AuQSr/A5FiB5k0RgsvNycDTjqyg7TXGQJBAJoZ8Yr0zakxT1I8
lVqsFbeNPtt8FNG2UgIlIs9RL7aXhw+Y3sWtk/kbaOXafSofu0NcQYx4Km3M3kiP
lcNfTJ8CQQCVPcaRpu+mprRgHS6s76Z668NaFsjX04CUUa0kCrey+Nf/SJJ3BkRH
M7GllZWuI/RSXs/F5N38p5bfkn7QZqaNAkBy3dHJZW8DpgjdYOFnhAxwFK39BwGx
zHhWtv26kWbCcTKwsp+jtB4vunm3k+RmiN6aeGM35L6jt+kdJ0JYLmo7AkBJpRZb
wZj5D8Jqu3vQ8uGgPr9DsYKinkgQ6M0bv/4uXwWXf+Rmv7zpteSv5UTbjfp+uzKk
YO/6QWj+InhZto3xAkAOA0i702dLHm5elLWvht7UEYIDEW1+rYGdbthmJBvT9sZh
VKL954Y9hDzBWepjYsBiJnmIkgeladPnU5025/G/
-----END RSA PRIVATE KEY-----
`
// 设置私钥
rsa.setPrivateKey(privateKey)
// 解密
const originalStr = rsa.decryptLong(cryptStr)
console.log('解密后的原始数据:', originalStr)``

6.注意事项
  例子中的加解密都是安装rsa标准的1024bit进行处理的,如果有特殊需要使用的是512bit或者2048bit的情况,可以在加解密前设置如下代码进行更改。总之只要公钥和私钥是对应的就没啥问题

rsa.default_key_size = 512

  以上就是微信小程序前端使用RSA加解密的方法了,大家使用的时候要去生成自己使用的公钥密钥哦,希望这篇文章能帮到大家。

其中,微信小程序支付是一种在微信平台上进行支付的一种功能,可以通过小程序进行购买、支付等操作。而RSA签名是一种数字签名算法,用于对数据进行加密和验证。 在微信小程序支付中,一般会采用RSA签名对支付参数进行加密和验证。具体的步骤如下: 1. 商户首先需要生成一对RSA密钥,其中包括公钥和私钥。 2. 商户将生成的公钥上传到微信支付平台,以便微信支付平台能够使用该公钥来加密敏感的支付参数。 3. 在小程序端,当用户选择进行支付时,商户需要获取用户的支付相关信息,如订单号、金额等。 4. 商户将这些支付参数按照规定的格式进行拼接,并使用商户的私钥对这些参数进行签名。 5. 商户将签名后的参数和其他必要的信息一起发送给微信支付平台。 6. 微信支付平台接收到商户的请求后,会使用之前商户上传的公钥进行验签,确保参数的完整性和准确性。 7. 验签成功后,微信支付平台会进行支付的各种处理,包括扣款、通知商户等。 通过上述步骤,商户可以利用RSA签名来确保支付参数的安全性,防止参数被篡改或伪造。同时,微信支付平台也能够通过RSA签名来验证商户发送的参数的有效性,确保支付的准确性和安全性。 总结来说,微信小程序支付中使用RSA签名是一种保证支付参数的安全性和完整性的加密解决方案,可以有效防止支付过程中的信息篡改和伪造。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

LeeBrook0

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

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

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

打赏作者

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

抵扣说明:

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

余额充值