小程序
小游戏
企业微信
微信支付
扫描小程序码分享
buffer : base64用工具解密后都是乱码。
5 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
你好,具体解密方法如下:
iv和key是同一个参数,可以试试如下的办法:
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
https://developers.weixin.qq.com/community/develop/article/doc/000266a74f8c788a5e9a1626351013
python demo
golang 版本的demo,有时候解析出来的是乱码,可能是秘钥不对,以下是使用的代码:
package main import ( "bytes" "crypto/aes" "crypto/cipher" "encoding/base64" "fmt" ) func main() { const key = "秘钥" encryptCode := "返回的buffer" decryptCode := AesDecrypt(encryptCode, key) fmt.Println("解密结果:", decryptCode) } func AesDecrypt(cryted string, key string) string { // 转成字节数组 crytedByte, _ := base64.StdEncoding.DecodeString(cryted) k := []byte(key) // 分组秘钥 block, _ := aes.NewCipher(k) // 获取秘钥块的长度 blockSize := block.BlockSize() // 加密模式 blockMode := cipher.NewCBCDecrypter(block, k[:blockSize]) // 创建数组 orig := make([]byte, len(crytedByte)) // 解密 blockMode.CryptBlocks(orig, crytedByte) // 补码 orig = PKCS7Padding(orig) return string(orig) } //补码 //AES加密数据块分组长度必须为128bit(byte[16]),密钥长度可以是128bit(byte[16])、192bit(byte[24])、256bit(byte[32])中的任意一个。 func PKCS7Padding(ciphertext []byte, blocksize int) []byte { padding := blocksize - len(ciphertext)%blocksize padtext := bytes.Repeat([]byte{byte(padding)}, padding) return append(ciphertext, padtext...) }
解密java 版:https://thinkcode.blog.csdn.net/article/details/108822436
看这个试试https://developers.weixin.qq.com/community/develop/doc/000624e67a8f589c2369dbbf65b800?_at=1592534681416
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
你好,具体解密方法如下:
iv和key是同一个参数,可以试试如下的办法:
https://developers.weixin.qq.com/community/develop/article/doc/000266a74f8c788a5e9a1626351013
python demo
golang 版本的demo,有时候解析出来的是乱码,可能是秘钥不对,以下是使用的代码:
package main import ( "bytes" "crypto/aes" "crypto/cipher" "encoding/base64" "fmt" ) func main() { const key = "秘钥" encryptCode := "返回的buffer" decryptCode := AesDecrypt(encryptCode, key) fmt.Println("解密结果:", decryptCode) } func AesDecrypt(cryted string, key string) string { // 转成字节数组 crytedByte, _ := base64.StdEncoding.DecodeString(cryted) k := []byte(key) // 分组秘钥 block, _ := aes.NewCipher(k) // 获取秘钥块的长度 blockSize := block.BlockSize() // 加密模式 blockMode := cipher.NewCBCDecrypter(block, k[:blockSize]) // 创建数组 orig := make([]byte, len(crytedByte)) // 解密 blockMode.CryptBlocks(orig, crytedByte) // 补码 orig = PKCS7Padding(orig) return string(orig) } //补码 //AES加密数据块分组长度必须为128bit(byte[16]),密钥长度可以是128bit(byte[16])、192bit(byte[24])、256bit(byte[32])中的任意一个。 func PKCS7Padding(ciphertext []byte, blocksize int) []byte { padding := blocksize - len(ciphertext)%blocksize padtext := bytes.Repeat([]byte{byte(padding)}, padding) return append(ciphertext, padtext...) }
解密java 版:https://thinkcode.blog.csdn.net/article/details/108822436
看这个试试https://developers.weixin.qq.com/community/develop/doc/000624e67a8f589c2369dbbf65b800?_at=1592534681416