我正在嘗試在我的 go API 中使用 AES 加密和解密,我使用 aes.NewCipher(mykey) 創(chuàng)建了一個新塊并且該塊似乎有效,但是當(dāng)我調(diào)用 cipher.NewCBCDecrypter(block, iv) 時函數(shù)在嘗試調(diào)用 b.BlockSize() 時在 cbc.go 的第 26 行導(dǎo)致“無效內(nèi)存地址或 nil 指針取消引用”錯誤。所以我嘗試從我自己的代碼中調(diào)用 block.BlockSize() 并且我也得到一個異常,但是當(dāng)我檢查塊 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}我希望該函數(shù)能夠正常工作,因?yàn)?aes.NewCipher 不會返回錯誤。
aes.NewCipher 返回一個有效塊,但調(diào)用 block.BlockSize() 時出現(xiàn)錯誤
人到中年有點(diǎn)甜
2023-06-05 17:05:46