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

广州宝盈网络科技有限公司网站业务推广平台

广州宝盈网络科技有限公司网站,业务推广平台,手机网站 方案,高端网站设计新感觉建站最近项目中golang项目中使用aes加解密#xff0c;做个记录方便以后使用 aes-cbc-pkcs7加密解密base64输入输出 type AesBase64 struct {key []byte // 允许16,24,32字节长度iv []byte // 只允许16字节长度 }func NewAesBase64(key []byte, iv []byte) *AesBase64 {return 做个记录方便以后使用 aes-cbc-pkcs7加密解密base64输入输出 type AesBase64 struct {key []byte // 允许16,24,32字节长度iv []byte // 只允许16字节长度 }func NewAesBase64(key []byte, iv []byte) *AesBase64 {return AesBase64{iv: iv,key: key,} }func (s *AesBase64) Encrypt(text []byte) (string, error) {if len(text) 0 {return , nil}//生成cipher.Block 数据块block, err : aes.NewCipher(s.key)if err ! nil {return , err}//填充内容如果不足16位字符blockSize : block.BlockSize()originData : s.pad(text, blockSize)//加密方式blockMode : cipher.NewCBCEncrypter(block, s.iv)//加密输出到[]byte数组crypted : make([]byte, len(originData))blockMode.CryptBlocks(crypted, originData)return base64.StdEncoding.EncodeToString(crypted), nil }func (s *AesBase64) Decrypt(text string) ([]byte, error) {if len(text) 0 {return []byte(text), nil}decodeData, err : base64.StdEncoding.DecodeString(text)if err ! nil {return []byte(text), err}if len(decodeData) 0 {return []byte(text), nil}//生成密码数据块cipher.Blockblock, _ : aes.NewCipher(s.key)//解密模式blockMode : cipher.NewCBCDecrypter(block, s.iv)//输出到[]byte数组originData : make([]byte, len(decodeData))blockMode.CryptBlocks(originData, decodeData)//去除填充,并返回return s.unPad(originData), nil }func (s *AesBase64) pad(ciphertext []byte, blockSize int) []byte {padding : blockSize - len(ciphertext)%blockSizepadText : bytes.Repeat([]byte{byte(padding)}, padding)return append(ciphertext, padText...) }func (s *AesBase64) unPad(ciphertext []byte) []byte {length : len(ciphertext)// 去掉最后一次的paddingunPadding : int(ciphertext[length-1])return ciphertext[:(length - unPadding)] } aes-cbc-pkcs7加密解密hex字符串输入输出 type AesHex struct {key []byte // 允许16,24,32字节长度iv []byte // 只允许16字节长度 }func NewAesHex(key []byte, iv []byte) *AesHex {return AesHex{iv: iv,key: key,} }func (s *AesHex) Encrypt(text []byte) (string, error) {if len(text) 0 {return , nil}//生成cipher.Block 数据块block, err : aes.NewCipher(s.key)if err ! nil {return , err}//填充内容如果不足16位字符blockSize : block.BlockSize()originData : s.pad(text, blockSize)//加密方式blockMode : cipher.NewCBCEncrypter(block, s.iv)//加密输出到[]byte数组crypted : make([]byte, len(originData))blockMode.CryptBlocks(crypted, originData)return hex.EncodeToString(crypted), nil }func (s *AesHex) Decrypt(text string) ([]byte, error) {if len(text) 0 {return []byte(text), nil}decodeData, err : hex.DecodeString(text)if err ! nil {return []byte(text), err}if len(decodeData) 0 {return []byte(text), nil}//生成密码数据块cipher.Blockblock, _ : aes.NewCipher(s.key)//解密模式blockMode : cipher.NewCBCDecrypter(block, s.iv)//输出到[]byte数组originData : make([]byte, len(decodeData))blockMode.CryptBlocks(originData, decodeData)//去除填充,并返回return s.unPad(originData), nil }func (s *AesHex) pad(ciphertext []byte, blockSize int) []byte {padding : blockSize - len(ciphertext)%blockSizepadText : bytes.Repeat([]byte{byte(padding)}, padding)return append(ciphertext, padText...) }func (s *AesHex) unPad(ciphertext []byte) []byte {length : len(ciphertext)// 去掉最后一次的paddingunPadding : int(ciphertext[length-1])return ciphertext[:(length - unPadding)] }原文仓库地址https://github.com/yanue/aes-cbc-pkcs7
http://www.zqtcl.cn/news/201456/

相关文章:

  • 校园二手网站开发与设计任务书wordpress 分类名称
  • 高端网站建设那公司好简约网站设计欣赏
  • 域名的网站建设方案书wordpress图片插件
  • 哪个网站做的w7系统好百度网络营销的概念
  • 哪里接单做网站怎么个人网站设计
  • 乐陵seo网站优化网站后期维护是做什么
  • 网站导航html源码网站编辑的工作职能有哪些
  • 品牌网站建设网wordpress密码保护文章
  • 体彩网站开发网站建设备案流程图
  • 云南网站建设天度网页界面设计遵循的原则
  • dede多个网站怎么做wordpress+adsense主题
  • 如何做网站营销江苏网站建设系统服务
  • 公司网站需要备案网络设置怎么设置
  • 网站正在建设中中文模板廊坊网站优化
  • 8免费网站建站网页网站模板
  • 网站开发算法面试滨州建设工程备案网站
  • 扬州网站开发个人做美食视频网站
  • 网站建设属于技术服务吗关于网站建设
  • 网站建设推广好处西安工业设计公司
  • 深圳宝安p2p网站系统的建设百度广告联盟标识
  • 企业网站备案怎么填写东莞市场监督管理局官网
  • 网站建站网站91955内蒙古建设集团招聘信息网站
  • 巴中建设厅网站电话seo是网络优化吗
  • 中国做投资的网站做网站的公司怎么推广
  • 专业的广州微网站建设移动应用开发干什么的
  • 网站运营有什么用常熟智能网站开发
  • 如何组建做网站的团队绍兴网站建设推广
  • 资讯类响应式网站模板深圳网站建设培训机构
  • 电子商务网站功能设计3d动画制作过程
  • 随机网站生成器win7asp+sql server 2008做网站