该插件完全前端化,无任何服务器端调用,请放心使用。如果不放心可用fiddler截取插件包查看相关源码。
登录微信公众平台 https://mp.weixin.qq.com,输入小程序账号密码。
点击设置,打开第三方服务,点击添加插件。
搜索 Crypto 或者 wxf25d506ff81e19fb
搜索结果出来后选中 Crypto ,点击添加。
配置小程序app.json
使用MD5加密
使用AES 进行加解密
加入
"plugins":{
"crypto":{
"version":"0.0.003",
"provider":"wxf25d506ff81e19fb"
}
}
注: version填0.0.002也可使用,0.0.002没有 PBKDF2 加密方式及 RSA 非对称加解密方式
在小程序代码中声明引用
const crypto = requirePlugin("crypto");
new crypto["MD5"]("布包云").toString();
const mi = new crypto.AES().encrypt('布包云', "BubaoCloud", {
iv: 8,
mode: crypto.Mode.CBC,
padding: crypto.Padding.Pkcs7
});
console.log('encrypt:', mi.toString());
const v = new crypto.AES().decrypt(mi.toString(), "BubaoCloud", {
iv: 8,
mode: crypto.Mode.CBC,
padding: crypto.Padding.Pkcs7
});
console.log('decrypt:', v.toString(crypto.Utf8));
iv:8是什么意思
我使用AES解密
执行到最后 v.toString(crypto.Utf8) 的时候报这个错
断点调试看了下,是decodeURIComponent(escape(a.stringify(t))这里,解析出的字符串含%,
导致decodeURIComponent报错了
我的参数是
s是session_key
代码如第一张图,想求教下是不是哪里写的不对
[non-writable] modification of global variable "Page" is not allowed when using plugins at app.json. 求解答
楼主,这个东西加密的密文有两种,一种是密文每次都一样,一种是密文每次不一样,一样的密文用的 base64,不一样的密文用的是啥?
楼主你好,为啥用插件生成的秘钥,跟后台还有在线测试工具的不能通用呢?
RSA的
aes可以设置128位和256位吗
这个可以解密小程序的getUserInfo那个返回的个人信息吗
不推荐那样做。
如果有 rsa加密,麻烦给介绍一下。。
我这边只是想将登陆密码加密,没有用到wx.login。这个牵扯后台解密。。还能用这种方法吗??
可以的
已加入插件,文档也看了,还是一头雾水。
从微信拿到的数据有三个,
先是从开发者服务端拿到 sessionKey,然后从微信端拿到 iv 和 encryptedData
这三个数据都是base64加密数据,官主是这么说的:
对称解密的目标密文为 Base64_Decode(encryptedData)。
对称解密秘钥 aeskey = Base64_Decode(session_key), aeskey 是16字节。
对称解密算法初始向量 为Base64_Decode(iv),其中iv由数据接口返回。
在楼主的这个插件里。要怎么处理才能拿到encryptedData的解密数据呢,另外 两个 key与iv是辅助解密用的,但在你给的例子里。AES解密 时只用到了 明文的 IV,key怎么没有使用。
const mi = new crypto.AES().encrypt('布包云', "BubaoCloud", {
iv: 8,
mode: crypto.Mode.CBC,
padding: crypto.Padding.Pkcs7
});
console.log('encrypt:', mi.toString());
const v = new crypto.AES().decrypt(mi.toString(), "BubaoCloud", {
iv: 8,
mode: crypto.Mode.CBC,
padding: crypto.Padding.Pkcs7
});
console.log('decrypt:', v.toString(crypto.Utf8));
BubaoCloud 是key
插件里面自带Base64,你可以这样使用
const enCodeBase64 = crypto.Base64.stringify(crypto.Utf8.parse('bubao'));
console.log(enCodeBase64)
const deCodeBase64 = crypto.Utf8.stringify(crypto.Base64.parse(enCodeBase64))
console.log(deCodeBase64)
不知道插件里有啥可以直接console.log(crypto)
不知道怎么用可以在搜索引擎里搜索cryptojs aes加密
谢谢,我再试试
友情提醒一下,你需要的这些数据都是在服务器端处理的。
请问答主还需要你通过申请吗?是不是直接添加后不可以马上使用
添加后就可以使用
你好,请问你的版本号是多少,我根据插件设置里面的开发文档看到的是3.1.2,然而使用时提示插件版本不存在哎,求指教
0.0.003
0.0.002
都可用
好的,谢谢你呀
没事没事