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

网站建设 运维 管理包括设计师浏览网站

网站建设 运维 管理包括,设计师浏览网站,昌吉市静态管理公告最新,推广公司文案在Go语言中#xff0c;crypto/cipher包提供了加密和解密消息的功能。这个包实现了各种加密算法#xff0c;如AES、DES、3DES、RC4等#xff0c;以及相应的模式#xff0c;如ECB、CBC、CFB、OFB、CTR等。以下是如何使用crypto/cipher包进行加密和解密操作的基本步骤#xf…在Go语言中crypto/cipher包提供了加密和解密消息的功能。这个包实现了各种加密算法如AES、DES、3DES、RC4等以及相应的模式如ECB、CBC、CFB、OFB、CTR等。以下是如何使用crypto/cipher包进行加密和解密操作的基本步骤 选择加密算法和模式 首先你需要选择一个加密算法和一个工作模式。例如AES算法与CBC模式的组合是一种常用的选择。 生成密钥和初始化向量如果需要 对于某些加密模式如CBC、CFB、OFB等你需要一个初始化向量IV。此外你还需要一个密钥它的长度取决于你选择的算法。 package usecaseimport (bytescontextcrypto/aescrypto/cipherencoding/base64fmtmath/rand )type Oauth2UseCase struct {key []byteblock cipher.Block } // 实例化结构 func NewOauth2UseCase() Oauth2UseCase {return Oauth2UseCase{key: []byte(x1selczyiorss9jmrxllfqhykwkw8hlp)} }加密数据 func (u *Oauth2UseCase) aesEncrypt(orig string) (string, error) {// 生成随机盐值salt : rand.Intn(25)orig orig string(u.key[salt:salt5])fmt.Println(orig, salt, orig)// 转成字节数组origData : []byte(orig)// 分组秘钥block, err : aes.NewCipher(u.key)if err ! nil {return , err}// 获取秘钥块的长度blockSize : block.BlockSize()// 补全码origData PKCS7Padding(origData, blockSize)// 加密模式blockMode : cipher.NewCBCEncrypter(block, u.key[:blockSize])// 创建数组cryted : make([]byte, len(origData))// 加密blockMode.CryptBlocks(cryted, origData)//使用RawURLEncoding 不要使用StdEncoding//不要使用StdEncoding 放在url参数中回导致错误return base64.RawURLEncoding.EncodeToString(cryted), nil }解密数据 func (u *Oauth2UseCase) aesDecrypt(cryted string) (string, error) {//使用RawURLEncoding 不要使用StdEncoding//不要使用StdEncoding 放在url参数中回导致错误crytedByte, _ : base64.RawURLEncoding.DecodeString(cryted)// 分组秘钥block, err : aes.NewCipher(u.key)if err ! nil {return , err}// 获取秘钥块的长度blockSize : block.BlockSize()// 加密模式blockMode : cipher.NewCBCDecrypter(block, u.key[:blockSize])// 创建数组orig : make([]byte, len(crytedByte))// 解密blockMode.CryptBlocks(orig, crytedByte)// 去补全码orig PKCS7UnPadding(orig)return string(orig)[:11], nil }处理填充 在加密和解密过程中你可能需要对数据进行填充和去填充。填充的目的是确保数据的大小是加密算法块大小的倍数。常见的填充方案有PKCS#7、Zero Padding等。 // PKCS7Padding 补码 func PKCS7Padding(ciphertext []byte, blocksize int) []byte {padding : blocksize - len(ciphertext)%blocksizepadtext : bytes.Repeat([]byte{byte(padding)}, padding)return append(ciphertext, padtext...) }// PKCS7UnPadding 去码 func PKCS7UnPadding(origData []byte) []byte {length : len(origData)unpadding : int(origData[length-1])return origData[:(length - unpadding)] }以上是使用crypto/cipher包进行基本加密和解密操作的步骤。在实际应用中你可能需要结合其他安全实践如使用安全的随机数生成器、管理密钥、处理错误等以确保加密过程的安全性。此外对于某些应用场景你可能还需要考虑使用更高级的加密库如crypto/nacl或golang.org/x/crypto它们提供了更多的加密算法和更高级的安全性。 // 加密数据如手机号 code, err : u.aesEncrypt(phone) //解密数据 phone, err : u.aesDecrypt(code)
http://www.zqtcl.cn/news/311883/

相关文章:

  • 网站建设中首页模板本科 网站建设的基础教程
  • 推广网站优化seo教程上排名抖音营销
  • 创业园区网站建设wordpress对接公众号源码
  • 怎么设计公司的网站长沙seo结算
  • 参加网站建设项目人员保障体系镇江网站建设门户报价
  • 漯河网站优化景区网站建设方案
  • 辽宁智能网站建设价位wordpress 公司主题
  • zencart 网站入侵冲电气软件 网站建设
  • 在网上做黑彩网站会怎样wordpress自定义代码在哪里设置
  • 福州营销网站建设老品牌网站开通
  • 电子商务网站体系结构有哪些?网站开发规划书怎么写
  • 建设一个网站要多少钱建设银行信用卡卡网站首页
  • 百度推广效果怎样seo网上培训课程
  • 广州品牌网站建设 优美wordpress 跳转页面
  • 成都专业的网站建设制作公司哪家好m3u8视频可以永久保存吗
  • 上海做兼职的网站如何在凡科建设网站
  • 沙朗镇做网站公司企业管理咨询师是干什么的
  • 起名网站建设商汇通网站
  • 网站开发费税率是多少钱建设小网站教程
  • 企业制作网站服务物联网应用有哪些
  • 中国建设网站银行个人做网站要注意什么条件
  • 莆田哪里有学做网站的wordpress可视化函数
  • 网站规划书500字上海金融网站制作网站制作公司好
  • 郑州网站制做钓鱼网站的公司
  • 网站域名授权怎么做以鹦鹉做头像的网站
  • 后端开发网站做一些什么WordPress能做门户网吗
  • 石家庄市住房和城乡建设厅网站好的企业型网站模板下载
  • 哈尔滨快速建站公司推荐网站刷流量会怎么样
  • 网站开发 顺德做新闻微网站有哪些
  • 如何阿里巴巴网站做推广苏州高新区建设局网站管网