我正在尝试在我的 go API 中使用 AES 加密和解密,我使用 aes.NewCipher(mykey) 创建了一个新块并且该块似乎有效,但是当我调用 cipher.NewCBCDecrypter(block, iv) 时函数在尝试调用 b.BlockSize() 时在 cbc.go 的第 26 行导致“无效内存地址或 nil 指针取消引用”错误。所以我尝试从我自己的代码中调用 block.BlockSize() 并且我也得到一个异常,但是当我检查块 var 时它不是零。func Decrypt(data []byte) (result []byte, err error) { logger := logrus.New() logger.Infof("Starting decryption for string: %s\n", string(data[:])) var block cipher.Block if block, err := aes.NewCipher([]byte(app.Config.AESKey)); (err != nil) || (block == nil) { logger.Infof("Failed to create block\n") return nil, err } if len(data) < aes.BlockSize { logger.Infof("Input too short\n") return nil, nil } cbc := cipher.NewCBCDecrypter(block, []byte(app.Config.AESIV)) cbc.CryptBlocks(data, data) return data, nil}我希望该函数能够正常工作,因为 aes.NewCipher 不会返回错误。
- 2 回答
- 0 关注
- 117 浏览
添加回答
举报
0/150
提交
取消