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

服装网站建设建议网页设计6种布局方式

服装网站建设建议,网页设计6种布局方式,企慕网站建设网络推广,用路由器做简单的网站目录 什么是 HMAC HMAC 的主要用途 HMAC 的工作原理 Golang 中的 crypto/hmac 包 如何选择合适的哈希函数和密钥长度 小结 什么是 HMAC HMAC#xff08;Hash-based Message Authentication Code#xff09;是一种基于 Hash 函数和密钥的消息认证码#xff0c;由 H.Kr…目录 什么是 HMAC HMAC 的主要用途 HMAC 的工作原理 Golang 中的 crypto/hmac 包 如何选择合适的哈希函数和密钥长度 小结 什么是 HMAC HMACHash-based Message Authentication Code是一种基于 Hash 函数和密钥的消息认证码由 H.KrawezykM.BellareR.Canetti 于1996年提出的一种基于 Hash 函数和密钥进行消息认证的方法并于1997年作为 RFC2104 被公布。HMAC 将密钥、消息和哈希函数一起使用确保消息在传输过程中不被篡改还可以验证消息的发送者身份。 HMAC 的主要用途 HMAC 主要用于以下几个方面 校验数据的完整性HMAC可以用于校验数据在传输过程中是否被篡改接收者通过计算接收到的消息的 HMAC与接收到的 HMAC 进行比较如果相同的话可以认为数据是完整的。用于身份验证HMAC 还可以用于验证消息的发送者。因为 HMAC 的计算需要一个密钥只有知道这个密钥的人才能生成正确的 HMAC。所以如果一个消息的 HMAC 是正确的可以认为这个消息确实来自声称的发送者典型的使用场景是 OpenAPI。防止重放攻击在某些情况下HMAC 还可用于防重放攻击。在消息中添加一个时间戳或序列号并参与 HMAC 的计算接收者可以拒绝那些具有旧时间戳或序列号的消息从而防止攻击者重放旧消息。安全协议HMAC 在很多安全协议中都有应用例如 IPSec用于保护 Internet Protocol 通信和 TLS用于保护 Web 通信。这些协议使用 HMAC 来确保数据的完整性和验证发送者的身份。 HMAC 的工作原理 HMAC 的典型使用方式如下 确定一个哈希函数如 SHA256 或 MD5和一个密钥。通过将密钥和消息组合并通过哈希函数运算生成固定大小的数据称为消息认证码。当消息接收者收到消息和 HMAC 时使用同样的密钥和哈希函数对接收到的消息进行运算然后将结果与接收到的 HMAC 进行比较如果相同消息就被认为是完整的且未被篡改并且确实来自声称的发送者。 Golang 中的 crypto/hmac 包 Golang 中的 crypto/hmac 包提供了 HMAC 的实现方法。以下是 crypto/hmac 包的一些主要函数和用法 New 函数接收一个哈希函数和一个密钥返回一个用来计算 HMAC 的 hash.Hash。 h : hmac.New(sha256.New, key) Write 方法可以向 HMAC 添加数据实现了 io.Writer 接口。 _, err : h.Write(data) if err ! nil {log.Fatal(err) } Sum 方法返回当前的哈希值作为字节切片。可以选择提供一个已存在的字节切片哈希值会被追加到这个切片的末尾。 result : h.Sum(nil) Equal 函数用于比较两个 HMAC 是否相等这个函数可以防止 timing attack 类型的攻击使用相同的时间来进行比较。 isValid : hmac.Equal(mac1, mac2) 可以看出Equal函数并不是简单地使用运算符来比较两个 HMAC 值而是使用了一种叫做constant time comparison的技术来做比较。这种技术可以确保比较花费的时间不依赖比较的数据从而防止 timing attack 类型的攻击。攻击者通过计算比较操作花费的时间可以推断出一些关于数据的信息。例如如果比较操作花费的时间和字节数有某种关系攻击者就可以通过改变输入观察比较操作花费时间的变化从而推断出正确的 HMAC 值。 以下是一个使用 crypto/hmac 包生成 HMAC 的例子代码如下 package mainimport (crypto/hmaccrypto/sha256fmt )func main() {key : []byte(secret key)data : []byte(message to authenticate)h : hmac.New(sha256.New, key)_, err : h.Write(data)if err ! nil {fmt.Println(Error writing to HMAC:, err)return}result : h.Sum(nil)fmt.Printf(HMAC: %x\n, result) }这个例子是使用 SHA-256 作为底层的哈希函数但也可以使用任何实现了 hash.Hash 接口的哈希函数。 如何选择合适的哈希函数和密钥长度 选择 HMAC 的哈希函数和密钥长度时需要考虑以下几个因素 安全需求安全需求是决定哈希函数和密钥长度选择的最重要因素。如果需要更高的安全性应该选择更强大的哈希函数和更长的密钥。例如SHA-256 或 SHA-3。性能需求更强大的哈希函数和更长的密钥通常会更耗性能。如果系统对性能有严格的要求可能需要在安全性和性能之间做出权衡。兼容性如果系统需要与其他系统交互可能需要选择一个与其他系统兼容的哈希函数和密钥长度。 关于哈希函数应该选择一个被广泛接受并且经过了严格安全检验的哈希函数。SHA-256 是被广泛接受的一种哈希算法不仅提供了足够的安全性并且在大多数现代硬件上都有很好的性能。 关于密钥长度一般来说密钥的长度应该至少与哈希函数的输出长度相同。例如如果使用了 SHA-256那么密钥长度应该至少为256位。如果密钥太短可能会降低 HMAC的安全性。如果密钥太长浪费服务器资源不说也不会进一步提高 HMAC 的安全性。所以选择一个与哈希函数输出长度相同的密钥长度是一个好的选择。 小结 本文详细讲解了如何在 Golang 中实现 HMAC首先介绍了 HMAC 的基本概念和用途。然后详细讲解了 HMAC 的工作原理包括如何选择哈希函数和密钥。希望能帮助你理解和有效使用 HMAC 来提高程序的全性。
http://www.hkea.cn/news/14326947/

相关文章:

  • 西宁好的网站建设公司著名咨询公司有哪些
  • 淄博网站的建设虚拟机可以做多个网站
  • h5网站建设功能计划表企业网站开发背景
  • 站内优化seowordpress设置上传大小
  • 凡科网免费网站域名注册天水网站seo
  • 关于集团网站建设的多语言网站开发
  • 推动门户网站建设不断优化升级婚礼摄影作品网站
  • 铭泰东莞网站建设校园环境设计规划及实施方案
  • 广州网站制作流程网络维护员主要什么工作
  • 保定做网站排名推广网站布局设计怎么写
  • 湖南建设局网站wordpress插件的用法
  • 外贸一站式推广服务电子商务网站建设收获
  • 搭建本地视频网站开一家网站建设公司有前景吗
  • 做网站推广运营前景邢台网站制作有哪些
  • 自己做的php网站进行伪静态营销网站建设工作
  • 番禺网站建设哪个好网络推广工作好吗
  • 怎么给网站做链接屏蔽网站建设全教程
  • 开传奇怎么建设自己的网站公司网站开发文档
  • 坪山建设网站建站洛阳市有哪些平台公司
  • 建网站和appwordpress 主题复用
  • 站长工具 seo查询郑州网站优化软件
  • 网页制作网站建设实战大全wordpress上一篇
  • 太原网站制作哪家不错涡阳哪里有做网站的
  • 网站建设常熟本地的wordpress地址
  • 公司网站上传文章seo com
  • cad如何做图纸模板下载网站网站开发总体功能设计
  • 非法网站开发是什么意思辽宁招投标网官网
  • 企业网站推广注意事项apicloud和uniapp哪个好
  • html用表格来做网站布局移投界seo
  • 如何做企业招聘网站网页制作是建网站的第几步