golang []uint8 加密
Go语言中的[]uint8类型可以理解为一个字节数组,因此可以使用各种加密算法对其进行加密。
常见的加密算法包括AES、DES、RSA等,这里以AES加密为例:
首先,需要确定加密的密钥key和明文plaintext。
然后,使用AES算法对明文进行加密,生成密文ciphertext:
key := []byte("abcdefghijklmnop")
plaintext := []byte("hello world")
block, err := aes.NewCipher(key)
if err != nil {
panic(err)
}
ciphertext := make([]byte, len(plaintext))
block.Encrypt(ciphertext, plaintext)
需要注意的是,AES算法要求密钥长度必须为16、24或32字节,因此需要保证key的长度符合要求。
解密时,同样需要使用相同的密钥key和AES算法进行解密,生成明文plaintext:
block, err := aes.NewCipher(key)
if err != nil {
panic(err)
}
plaintext := make([]byte, len(ciphertext))
block.Decrypt(plaintext, ciphertext)
完整代码如下:
package main
import (
"crypto/aes"
"fmt"
)
func main() {
key := []byte("abcdefghijklmnop")
plaintext := []byte("hello world")
block, err := aes.NewCipher(key)
if err != nil {
panic(err)
}
ciphertext := make([]byte, len(plaintext))
block.Encrypt(ciphertext, plaintext)
fmt.Printf("ciphertext: %x\n", ciphertext)
plaintext = make([]byte, len(ciphertext))
block.Decrypt(plaintext, ciphertext)
fmt.Printf("plaintext: %s\n", plaintext)
}
输出结果为:
ciphertext: 3ad77bb40d7a3660a89ecaf32466ef97
plaintext: hello world
原文地址: https://www.cveoy.top/t/topic/tGi 著作权归作者所有。请勿转载和采集!