mosquitto鉴权插件mosquitto-auth-plug的加密算法

本文探讨mosquitto-auth-plug中PBKDF2加密算法的使用,包括如何用Golang计算密码、加密速度与密码长度的优化。通过比较发现,C版本的加密速度比Golang快约一倍,但针对特定应用场景,较小的迭代次数足以满足需求。此外,文章提出可以通过调整源码,减少密码长度以节省数据库资源,或者提高迭代次数以增强安全性。
摘要由CSDN通过智能技术生成

mosquitto-auth-plug

PBKDF2加密


PBKDF2其实就是选择一种哈希算法,把密码加盐后经过多次迭代计算进行加密。当然肯定是不可逆的,可以防止碰撞破解,迭代次数越多越安全。

mosquitto-auth-plug使用了PBKDF2加密,编译后得到的np可执行程序可以进行加密:(下面假设密码为admin)

./np -p admin

得到加密密码:
PBKDF2$sha256$901$qiCmZmc2ZKEJkEaL$7Nw6lpv9G0IoEgxcTfEbx4ajtMQD3shC

返回的密码使用$符号分隔,最前为PBKDF2标识,默认使用sha256哈希算法,进行了901次迭代加密,然后是使用openssl生成随机数经过BASE64的字符串也就是盐,最后是真正PBKDF2生成的Key。

把这个密码存储到数据库以后,当用户使用用户名和密码登录上来时,auth-plug会根据用户名查询数据库得到密码,然后根据$分割标识的定义来进行加密密码,最后把加密后的密码跟数据库的密码进行对比就知道用户的密码是否正确。

使用golang计算auth

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值