我是Go的新手,我正在尝试加密包。
我的代码如下所示:
package main
import "fmt"
import . "crypto/aes"
func main() {
block, _ := NewCipher([]byte("randomkey"))
var dst = []byte{}
var src = []byte("senstive")
block.Encrypt(dst, src)
fmt.Println(string(src))
}
我收到以下错误:
panic: runtime error: invalid memory address or nil pointer dereference.
我做错了什么?
我的代码可以在 Go 操场上找到这里
我修复了它:
package main
import "fmt"
import "crypto/aes"
func main() {
bc, err := aes.NewCipher([]byte("key3456789012345"))
if (err != nil) {
fmt.Println(err);
}
fmt.Printf("The block size is %dn", bc.BlockSize())
var dst = make([]byte, 16)
var src = []byte("sensitive1234567")
bc.Encrypt(dst, src)
fmt.Println(dst)
}
通常,您应该检查错误代码并仔细阅读您调用的每个函数的文档。 此外,这是一个块密码,因此它需要特定大小的字节块。