Golang AES加密

Lee*_*Lee 1 go

我是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))
}
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

panic: runtime error: invalid memory address or nil pointer dereference.
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

我的代码可以在这里的Go游乐场 找到

Dav*_*son 6

我修好了:

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)
}
Run Code Online (Sandbox Code Playgroud)

通常,您应该检查错误代码并仔细阅读您调用的每个函数的文档.此外,这是一个块密码,因此它需要特定大小的字节块.