赞
踩
- package main
-
- import (
- "bytes"
- "crypto/aes"
- "crypto/cipher"
- "fmt"
- )
-
- //aes是对称加密算法的一种,Ctr是分组迭代模式的一种,需要初始向量,使用了流密钥而非分组密钥
-
- func aesEncrypt(plainText, key []byte) ([]byte, error) {
-
- //1 创建aes密码接口 go内置aes包
- block, err := aes.NewCipher(key)
- if err != nil {
- return nil, err
- }
- fmt.Println("打印aes算法的分组长度:", block.BlockSize())
- //2 创建分组的迭代模式 需要初始化向量 返回一个流密钥
- iv := bytes.Repeat([]byte("1"), block.BlockSize())
- stream := cipher.NewCTR(block, iv)
-
- //3 加密 先给秘闻开辟一块存储空间,然后加密明文
- dst := make([]byte, len(plainText))
- stream.XORKeyStream(dst, plainText)
- return dst, nil
- }
- func aesDecrypt(encryptData, key []byte) ([]byte, error) {
- return aesEncrypt(encryptData, key)
- }
- func main() {
- src := "你好吗你好吗你好吗你好吗"
- key := []byte("1234567887654321")
- encryptData, err := aesEncrypt([]byte(src), key)
- if err != n
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。