当前位置:   article > 正文

对称加密算法之aes算法+分组迭代模式之CTR模式加密_基于 aes 算法的 ctr 工作模式主要介绍

基于 aes 算法的 ctr 工作模式主要介绍

 

 

 

 

  1. package main
  2. import (
  3. "bytes"
  4. "crypto/aes"
  5. "crypto/cipher"
  6. "fmt"
  7. )
  8. //aes是对称加密算法的一种,Ctr是分组迭代模式的一种,需要初始向量,使用了流密钥而非分组密钥
  9. func aesEncrypt(plainText, key []byte) ([]byte, error) {
  10. //1 创建aes密码接口 go内置aes包
  11. block, err := aes.NewCipher(key)
  12. if err != nil {
  13. return nil, err
  14. }
  15. fmt.Println("打印aes算法的分组长度:", block.BlockSize())
  16. //2 创建分组的迭代模式 需要初始化向量 返回一个流密钥
  17. iv := bytes.Repeat([]byte("1"), block.BlockSize())
  18. stream := cipher.NewCTR(block, iv)
  19. //3 加密 先给秘闻开辟一块存储空间,然后加密明文
  20. dst := make([]byte, len(plainText))
  21. stream.XORKeyStream(dst, plainText)
  22. return dst, nil
  23. }
  24. func aesDecrypt(encryptData, key []byte) ([]byte, error) {
  25. return aesEncrypt(encryptData, key)
  26. }
  27. func main() {
  28. src := "你好吗你好吗你好吗你好吗"
  29. key := []byte("1234567887654321")
  30. encryptData, err := aesEncrypt([]byte(src), key)
  31. if err != n
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/176623
推荐阅读
相关标签
  

闽ICP备14008679号