当前位置: 首页 > news >正文

服务器怎么做网站教程商务网站建设实训心得

服务器怎么做网站教程,商务网站建设实训心得,订阅号可以做微网站,asp+sql server典型网站建设案例冷雨悄悄停吧 天真的心因为你 那管多风雨天仍和你一起 告诉你我其实多么的想你 其实我我真的爱着你 #x1f3b5; 蒋明周《真的爱着你》 引言 高级加密标准#xff08;AES#xff09;是一种广泛使用的加密算法。它可以工作在多种模式下#xff0c;最… 冷雨悄悄停吧 天真的心因为你 那管多风雨天仍和你一起 告诉你我其实多么的想你 其实我我真的爱着你                       蒋明周《真的爱着你》 引言 高级加密标准AES是一种广泛使用的加密算法。它可以工作在多种模式下最常用的一种是CBCCipher Block Chaining模式。本文将介绍如何使用Go语言实现AES CBC No Padding加密和解密。 什么是AES CBC No Padding AESAdvanced Encryption Standard是一种对称加密算法意味着加密和解密使用相同的密钥。CBCCipher Block Chaining是一种工作模式它将每个明文块与前一个密文块进行异或XOR操作后再进行加密。No Padding表示数据块必须是加密算法所要求的固定大小不足时不会自动填充。 准备工作 在开始编写代码之前请确保已安装Go语言环境。可以从 Go语言官方网站 下载并安装。 代码实现 下面是完整的代码实现包括加密和解密函数。 package mainimport (bytescrypto/aescrypto/cipherencoding/hexfmtlog )// AES加密函数 func aesEncrypt(plaintext, key, iv []byte) ([]byte, error) {block, err : aes.NewCipher(key)if err ! nil {return nil, err}if len(plaintext)%aes.BlockSize ! 0 {return nil, fmt.Errorf(plaintext is not a multiple of the block size)}ciphertext : make([]byte, len(plaintext))mode : cipher.NewCBCEncrypter(block, iv)mode.CryptBlocks(ciphertext, plaintext)return ciphertext, nil }// AES解密函数 func aesDecrypt(ciphertext, key, iv []byte) ([]byte, error) {block, err : aes.NewCipher(key)if err ! nil {return nil, err}if len(ciphertext)%aes.BlockSize ! 0 {return nil, fmt.Errorf(ciphertext is not a multiple of the block size)}plaintext : make([]byte, len(ciphertext))mode : cipher.NewCBCDecrypter(block, iv)mode.CryptBlocks(plaintext, ciphertext)return plaintext, nil }func main() {key : []byte(0123456789abcdef) // 16字节的密钥iv : []byte(abcdef9876543210) // 16字节的初始向量plaintext : []byte(Hello, AES CBC No Padding!) // 明文// 补充明文使其长度为块大小的倍数if len(plaintext)%aes.BlockSize ! 0 {padding : aes.BlockSize - len(plaintext)%aes.BlockSizeplaintext append(plaintext, bytes.Repeat([]byte{byte(padding)}, padding)...)}fmt.Printf(原始明文: %s\n, plaintext)// 加密ciphertext, err : aesEncrypt(plaintext, key, iv)if err ! nil {log.Fatalf(加密失败: %v, err)}fmt.Printf(密文: %s\n, hex.EncodeToString(ciphertext))// 解密decryptedText, err : aesDecrypt(ciphertext, key, iv)if err ! nil {log.Fatalf(解密失败: %v, err)}fmt.Printf(解密后的明文: %s\n, decryptedText) }代码说明 导入必要的包我们使用crypto/aes和crypto/cipher包来处理AES加密和解密。 AES加密函数 创建一个新的AES密码块。 检查明文长度是否为块大小的倍数如果不是则返回错误。 使用CBC加密模式进行加密。 AES解密函数 创建一个新的AES密码块。 检查密文长度是否为块大小的倍数如果不是则返回错误。 使用CBC解密模式进行解密。 主函数 定义密钥和初始向量IV。 补充明文使其长度为块大小的倍数。 执行加密和解密操作并输出结果。 运行代码 将上述代码保存为main.go然后在终端中运行 go run main.go结论 本文介绍了如何使用Go语言实现AES CBC No Padding加密和解密。我们讨论了AES CBC模式的基本概念并提供了完整的代码示例。希望这篇文章能帮助你更好地理解AES CBC加密和解密的实现。如果你有任何问题或建议请在评论中告诉我们。
http://www.hkea.cn/news/14276344/

相关文章:

  • 网站推他网站wordpress如何关闭自动更新
  • 公司做网站需要注意些什么问题个人网站空间大小
  • 网站开发需要有什么证书杭州建设主管部门的网站
  • 大连网站建设详细流程盘锦网站网站建设
  • 专业html5网站建设展厅展示设计
  • 做网站课程国际新闻最新消息今天乌克兰与俄罗斯
  • 内江网站建设公司哪公司建设网站
  • 网站建设流程 费用网站系统与程序的链接
  • 莱阳有网站建设推广的吗wordpress 上传目录权限
  • wordpress做大型网站crm客户管理系统 项目
  • wordpress极简优化新十条
  • wordpress自适应网站博客模板最新网站上的html内容怎么修改
  • 网站建设从初级到精通用网站
  • 重庆做手机网站建设wordpress页面展示多个文章
  • 做航模的网站安卓手机优化软件排名
  • 广东省水利工程建设信息网站外包公司辞退有赔偿吗
  • 网站推广文章 优帮云能不能不用虚拟主机建设网站
  • 把自己做的动画传到哪个网站上商丘网红打卡地
  • 网络公司网站报价方案快法务网站开发
  • 购买东西网站怎么做网站制作客户寻找
  • 怎样做网站流量统计wordpress文章附件
  • 做的网站没流量it外包服务网
  • 莱芜新闻电视台节目表辛集seo网站优化
  • 网站的规划与建设案例分析邮编域名做网站
  • 企业网站建设价格wordpress内容页主题修改
  • 网站建设陕icp做学院网站用到的动图
  • 与网站设计相关的软件主要有注册资金1000万实际需要多少钱
  • 做企业网站前期需要准备什么资料iis7wordpress
  • 做网站预算表南阳网站运营
  • 做优化网站网页微信版二维码过期怎么办