Golang里的AES、DES、3DES加解密是怎样的
AES
1、AES(Advanced Encryption Standard,高级加密标准),又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。Golang里提供了AES加密的实现,可以使用aes包,其中包含了AES的基本实现,以及CBC、CFB等模式的实现。
2、AES加密的实现代码如下:
package main
import (
"crypto/aes"
"crypto/cipher"
"fmt"
)
func main() {
// 要加密的字符串
src := []byte("Hello World!")
// 密钥
key := []byte("1234567890123456")
// 创建一个加密算法aes
block, err := aes.NewCipher(key)
if err != nil {
fmt.Println("key error", err)
return
}
// 加密字符串
cipherText := make([]byte, len(src))
blockMode := cipher.NewCBCEncrypter(block, key)
blockMode.CryptBlocks(cipherText, src)
fmt.Println(cipherText)DES
1、DES(Data Encryption Standard,数据加密标准),是一种使用密钥加密的块算法,Golang里提供了DES加解密的实现,可以使用des包,其中包含了DES的基本实现,以及CBC、CFB等模式的实现。
2、DES加密的实现代码如下:
package main
import (
"crypto/des"
"crypto/cipher"
"fmt"
)
func main() {
// 要加密的字符串
src := []byte("Hello World!")
// 密钥
key := []byte("12345678")
// 创建一个加密算法aes
block, err := des.NewCipher(key)
if err != nil {
fmt.Println("key error", err)
return
}
// 加密字符串
cipherText := make([]byte, len(src))
blockMode := cipher.NewCBCEncrypter(block, key)
blockMode.CryptBlocks(cipherText, src)
fmt.Println(cipherText)3DES
1、3DES(Triple Data Encryption Standard,三重数据加密标准),是DES的一种模式,它使用3条56位的密钥对数据进行三次加密,强度更高。Golang里提供了3DES加解密的实现,可以使用des包,其中包含了3DES的基本实现,以及CBC、CFB等模式的实现。
2、3DES加密的实现代码如下:
package main
import (
"crypto/des"
"crypto/cipher"
"fmt"
)
func main() {
// 要加密的字符串
src := []byte("Hello World!")
// 密钥
key := []byte("1234567890123456")
// 创建一个加密算法aes
block, err := des.NewTripleDESCipher(key)
if err != nil {
fmt.Println("key error", err)
return
}
// 加密字符串
cipherText := make([]byte, len(src))
blockMode := cipher.NewCBCEncrypter(block, key)
blockMode.CryptBlocks(cipherText, src)
fmt.Println(cipherText)猜您想看
-
宝塔使用技巧:如何开启 Gzip 压缩 HTML 文件
为什么要开启G...
2023年05月07日 -
C#中怎么使用正则表达式判断输入日期格式是否正确
一、正则表达式...
2023年05月23日 -
如何在Docker中使用容器部署身份验证服务?
如何在Dock...
2023年04月16日 -
按照防火墙对数据的处理方法可将防火墙分为什么
防火墙是一种网...
2023年07月23日 -
iPhone静音模式简介,快速开启与取消方法。
iPhone静...
2023年04月15日 -
如何在 WordPress 博客系统中实现文章访问密码保护
如何在 Wor...
2023年04月15日