wecipher
v1.0.10
Published
微信小程序加密工具库,基于 ECIES (ECDH + AES-GCM) 方案
Maintainers
Readme
WeCipher
微信小程序加密工具库,基于 ECIES (ECDH + AES-GCM) 方案。
English | 中文
安装
npm install wecipher主要 API
密钥生成
generateP256KeyPair()- 生成 P-256 密钥对generateAES256Key()- 生成 AES-256 密钥
加密解密
encryptAESGCM(plaintext, key)- AES-GCM 加密(返回 EncryptedData 对象)decryptAESGCM(encryptedData, key)- AES-GCM 解密(接收 EncryptedData 对象)encryptWithAESGCM(plainText, aesKey)- AES-GCM 加密(返回 Base64 字符串)decryptWithAESGCM(cipherTextBase64, aesKey)- AES-GCM 解密(接收 Base64 字符串)encryptAESKeyCompat(aesKey, serverPubKey)- ECIES 加密(兼容 Bouncy Castle)
密钥交换
deriveSharedSecret(privateKey, publicKey)- 派生共享密钥deriveAESKey(sharedSecret)- 派生 AES 密钥
载荷加密
clientEncryptField(plaintext, serverPublicKey, clientKeyPair)- 客户端加密clientDecryptField(encryptedData, serverPublicKey, clientPrivateKey)- 客户端解密
工具函数
bytesToBase64(bytes)/base64ToBytes(base64)- Base64 转换jwkToPublicKey(jwk)- JWK 格式转换extractPublicKeyFromDERBase64(derBase64)- DER 格式解析
微信小程序
initWxSecureRandomCache(size?)- 初始化安全随机数缓存(必须先调用),默认128字节,可自定义大小setupWxPolyfills()- 设置微信小程序环境补丁,包括 TextEncoder/TextDecoder、crypto.getRandomValues、wx.getSecureRandomValuesSync(需先调用 initWxSecureRandomCache)generateAndCacheSecureRandomBytes(size?)- 生成并缓存安全随机数,默认128字节,使用 HKDF-SHA256 确保密码学安全性getSecureRandomValuesSync(length)- 同步获取指定长度的安全随机数wxGetSecureRandomValuesAsync(length)- 异步获取随机数isCacheInitialized()- 检查缓存是否已初始化resetSecureRandomCache()- 重置缓存(用于测试)
License
ISC
