博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HMAC
阅读量:6921 次
发布时间:2019-06-27

本文共 713 字,大约阅读时间需要 2 分钟。

hot3.png

HMAC

根据RFC 2316(Report of the IAB,April 1998),HMAC(散列消息身份验证码: Hashed Message Authentication Code)以及IPSec被认为是Interact安全的关键性核心协议。它不是散列函数,而是采用了将MD5或SHA1散列函数与共享机密密钥(与公钥 /私钥对不同)一起使用的消息身份验证机制。基本来说,消息与密钥组合并运行散列函数。然后运行结果与密钥组合并再次运行散列函数。这个128位的结果被 截断成96位,成为MAC.
hmac主要应用在身份验证中,它的使用方法是这样的:

1. 客户端发出登录请求(假设是浏览器的GET请求)
2. 服务器返回一个随机值,并在会话中记录这个随机值
3. 客户端将该随机值作为密钥,用户密码进行hmac运算,然后提交给服务器
4. 服务器读取用户数据库中的用户密码和步骤2中发送的随机值做与客户端一样的hmac运算,然后与用户发送的结果比较,如果结果一致则验证用户合法

在 这个过程中,可能遭到安全攻击的是服务器发送的随机值和用户发送的hmac结果,而对于截获了这两个值的黑客而言这两个值是没有意义的,绝无获取用户密码 的可能性,随机值的引入使hmac只在当前会话中有效,大大增强了安全性和实用性。大多数的语言都实现了hmac算法,比如php的mhash、 python的hmac.py、java的MessageDigest类,在web验证中使用hmac也是可行的,用js进行md5运算的速度也是比较快 的。

转载于:https://my.oschina.net/twistfate33/blog/702444

你可能感兴趣的文章
MQTT Java客户端的使用
查看>>
.NET Remoting学习笔记(三)信道
查看>>
csv文件乱码
查看>>
SQL Server解决孤立用户浅析
查看>>
Android全面插件化方案-RePlugin踩坑
查看>>
从原理上说说ScrollView嵌套ListView的问题
查看>>
php加载文件的时候遇到的奇葩问题
查看>>
WPS Office 2019 上架微软商城,全新可定制 UI
查看>>
设计模式(十一)外观模式
查看>>
Vue中引入JQuery和Bootstrap方法
查看>>
Spring Controller层设置AOP
查看>>
PostgreSQL 模拟两个update语句死锁 - 利用扫描方法
查看>>
校内教师服务工具提供商“园钉”完成A+轮数千万元融资
查看>>
课程设计问题总结
查看>>
阿里云携手爱迪德,发布中国首个云端DRM解决方案
查看>>
SpringBoot实战(三)之使用RestFul Web服务
查看>>
Android多渠道打包——使用gradle进行多渠道自动打包
查看>>
Kooteam 0.2.0 发布,新增周报、日报功能
查看>>
重新学习MySQL数据库11:以Java的视角来聊聊SQL注入
查看>>
“求助”不等于“麻烦”
查看>>