我是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 %d\n", bc.BlockSize()) var dst = make([]byte, 16) var src = []byte("sensitive1234567") bc.Encrypt(dst, src) fmt.Println(dst) }
通常,您应该检查错误代码并仔细阅读您调用的每个函数的文档.此外,这是一个块密码,因此它需要特定大小的字节块.