小程序
小游戏
企业微信
微信支付
扫描小程序码分享
小程序获取手机号用crypto解密时 var decipher = crypto.createDecipheriv('aes-128-cbc',sessionKey, iv);报invalid key length,怎么解决?
1 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
var decipher = crypto.createDecipheriv('aes-128-cbc', Buffer.from(sessionKey, 'base64'), iv);
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
decodePhoneNumber(encryptedData: string, key: string, iv: string): string {
const sessionKeyBuffer = Buffer.from(key, 'base64')
const encryptedDataBuffer = Buffer.from(encryptedData, 'base64')
const ivBuffer = Buffer.from(iv, 'base64')
const decipher = crypto.createDecipheriv(
'aes-128-cbc',
sessionKeyBuffer,
ivBuffer,
)
decipher.setAutoPadding(true)
let decoded = decipher.update(encryptedDataBuffer, 'base64', 'utf8')
decoded += decipher.final('utf8')
// fix: 之前即时写的代码忘记转json对象了
const decodedData: { phoneNumber: string } = JSON.parse(decoded)
return decodedData.phoneNumber
}
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
var decipher = crypto.createDecipheriv('aes-128-cbc', Buffer.from(sessionKey, 'base64'), iv);
decodePhoneNumber(encryptedData: string, key: string, iv: string): string {
const sessionKeyBuffer = Buffer.from(key, 'base64')
const encryptedDataBuffer = Buffer.from(encryptedData, 'base64')
const ivBuffer = Buffer.from(iv, 'base64')
const decipher = crypto.createDecipheriv(
'aes-128-cbc',
sessionKeyBuffer,
ivBuffer,
)
decipher.setAutoPadding(true)
let decoded = decipher.update(encryptedDataBuffer, 'base64', 'utf8')
decoded += decipher.final('utf8')
// fix: 之前即时写的代码忘记转json对象了
const decodedData: { phoneNumber: string } = JSON.parse(decoded)
return decodedData.phoneNumber
}