我正在嘗試在我的 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 關注
- 158 瀏覽
添加回答
舉報
0/150
提交
取消