微信小程序——安装miniprogram-sm-crypto

本文介绍如何在微信小程序中集成npm模块,包括检查npm安装情况、初始化项目、安装依赖及启用npm模块等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一步:进入微信小程序项目目录下,输入cmd
在这里插入图片描述
第二步:检测是否安装npm ,执行npm -v,若显示安装版本号说明已安装,若无,需要安装node

npm -v

在这里插入图片描述
第三步:在小程序项目目录下(app.js所在目录),打开cmd,执行npm init -y
参数 -y 表示对npm要求提供的信息,都自动按下回车键,表示接受默认值

npm init -y

第四步:执行 npm i miniprogram-sm-crypto --production
下载miniprogram依赖后,在微信开发工具中点击右上角 “详情”,将 使用npm模块 选项勾选上
在这里插入图片描述

### 微信小程序中 `miniprogram-sm-crypto` 的 SM4 加密模式 #### 安装与引入 为了在微信小程序中使用 `miniprogram-sm-crypto` 库中的 SM4 功能,需先通过 npm 进行安装: ```bash npm install miniprogram-sm-crypto --save ``` 随后,在项目文件中导入该模块以便后续调用其函数[^1]。 #### 初始化配置 确保已正确设置编译工具链支持 ES6 转换至 ES5 语法兼容性处理;另外还需注意检查 `package.json` 文件内的 `"type"` 字段应设为 `"commonjs"` 或者不指定此字段以保持默认行为[^5]。 #### 创建加密实例并执行操作 下面展示了一个简单的例子来说明如何创建一个基于 ECB 模式的 SM4 密码器对象以及完成字符串的加解密过程: ```javascript const smCrypto = require('miniprogram-sm-crypto'); // 获取随机生成的16字节秘钥用于演示目的 let key = smCrypto.util.hexToBytes(smCrypto.sm4.randomHex(16)); function encryptData(data) { let cipherText; try { const sm4Cipher = new smCrypto.sm4.Cipher(key, 'ecb', null); // 将明文转换成字节数组形式再进行填充补位 let paddedPlainText = smCrypto.padding.pkcs7Padding( smCrypto.util.stringToUtf8ByteArray(data) ); // 执行实际的数据加密运算得到密文结果 cipherText = sm4Cipher.encrypt(paddedPlainText); console.log(`Encrypted Data: ${cipherText}`); } catch (error) { console.error(error.message); } } function decryptData(ciphertextBase64) { let decryptedText; try { const sm4Decipher = new smCrypto.sm4.Decipher(key, 'ecb', null); // 解析 Base64 编码后的密文恢复原始二进制表示 let decodedCiphertext = smCrypto.util.base64ToBytes(ciphertextBase64); // 实施逆向变换即解密流程获得去除填充后的原文本 decryptedText = smCrypto.util.utf8ByteArrayToString( smCrypto.padding.removePkcs7Padding( sm4Decipher.decrypt(decodedCiphertext) ) ); console.log(`Decrypted Text: ${decryptedText}`); } catch (error) { console.error(error.message); } } ``` 上述代码片段展示了如何利用 `miniprogram-sm-crypto` 库来进行基本的 SM4 数据保护工作。值得注意的是这里选择了ECB作为运作模式之一,并采用了PKCS#7标准做为填充方案[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值