HMAC 算法的使用

HMAC 的用途

HMAC 算法主要应用于身份验证,用法如下:

    1.客户端发出登录请求
    2.服务器返回一个随机值,在会话记录中保存这个随机值
    3.客户端将该随机值作为密钥,用户密码进行 hmac 运算,递交给服务器
    4.服务器读取数据库中的用户密码,利用密钥做和客户端一样的 hmac运算,然后与用户发送的结果比较,如果一致,则用户身份合法。

这么做有什么好处呢? 如果我们在登录的过程中,黑客截获了我们发送的数据,他也只能得到 hmac 加密过后的结果,由于不知道密钥,根本不可能获取到用户密码,从而保证了安全性。

HMAC 的种类

算法种类                摘要长度

HmacMD5                 128
HmacSHA1                160
HmacSHA256              256
HmacSHA384              384
HmacSHA512              512

HMAC 的使用

1 . 刚才也看到了,想要使用 HMAC 算法,那么我们需要生成一个密钥,这个密钥怎么生成呢?自己随便瞎填吗? JDK 中自带了一个密钥生成器 KeyGenerator 用于帮助我们生成密钥,示例如下

public static byte[] getSecretKey() throws Exception {
    KeyGenerator keyGenerator = KeyGenerator.getInstance("HmacMD5
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值