美文网首页开源库挖掘&推荐
安卓端TOTP动态密码生成库

安卓端TOTP动态密码生成库

作者: 5afd372c86ba | 来源:发表于2017-09-25 11:00 被阅读38次
    名称 SecurityOrder
    语言 Android
    平台 GitOSC
    作者 流年
    链接 点此进入
    备注 更多精彩开源库推荐请访问明灯小站

    TOTP(Time-base One-Time Password)译为基于时间的一次性密码,也称时间同步的动态密码。应用范围:对安全性要求比较高的场合,可以进行密码的二次认证,例如:游戏,银行等业务。
    该库的加密工具类主要参考google-authenticator 加密原理:使用HMAC算法,利用哈希算法,以一个密钥和一个消息为输入,生成一个消息摘要作为输出。 这里的密钥参数:base32生成,消息参数:时间戳(秒单位)/时间间隔(TimeStep) (tips: 例如 TimeStep=30 30内生成密码一样,就是误差30s)
    效果图

    TOTP效果图

    TOTP的要求

    1. 客户端和服务器必须能够彼此知道或者推算出对方的Unix Time;
    2. 客户端和服务器端必须共享一个密钥 ;
    3. 算法必须使用HOTP作为其关键实现环节 ;
    4. 客户端和服务器端必须使用相同的步长X ;
    5. 每一个客户端必须拥有不同的密钥 ;
    6. 密钥的生成必须足够随机 ;
    7. 密钥必须储存在防篡改的设备上,而且不能在不安全的情况下被访问或使用;
    8. 对该算法中T的实现必须大于int32,因为它在2038年将超出上限;
    9. T0和X的协商必须在之前的步骤中就已经做好了。

    使用方法

    1. 将项目app\src\main\java\com\tk\securityorder\totp中的Base32String.java、PasscodeGenerator.java、TimeUtils.java等三个类添加自己项目;
    2. 调用PasscodeGenerator中的generateTotpNum方法:
    String totpNum = TOTPPasscodeGenerator.generateTotpNum();
    

    相关文章

      网友评论

        本文标题:安卓端TOTP动态密码生成库

        本文链接:https://www.haomeiwen.com/subject/rnmrextx.html