类 SaTotpUtil

java.lang.Object
cn.dev33.satoken.secure.totp.SaTotpUtil

public class SaTotpUtil extends Object
TOTP 工具类,支持 生成/验证 动态一次性密码
从以下版本开始:
1.42.0
作者:
click33
  • 构造器详细资料

    • SaTotpUtil

      public SaTotpUtil()
  • 方法详细资料

    • generateSecretKey

      public static String generateSecretKey()
      生成随机密钥(Base32编码)
      返回:
      /
    • generateTOTP

      public static String generateTOTP(String secretKey)
      生成当前时间的TOTP验证码
      参数:
      secretKey - Base32编码的密钥
      返回:
      /
    • validateTOTP

      public static boolean validateTOTP(String secretKey, String code, int timeWindowOffset)
      判断用户输入的TOTP是否有效
      参数:
      secretKey - Base32编码的密钥
      code - 用户输入的验证码
      timeWindowOffset - 允许的时间窗口偏移量(如1表示允许前后各1个时间窗口)
      返回:
      /
    • checkTOTP

      public static void checkTOTP(String secretKey, String code, int timeWindowOffset)
      校验用户输入的TOTP是否有效,如果无效则抛出异常
      参数:
      secretKey - Base32编码的密钥
      code - 用户输入的验证码
      timeWindowOffset - 允许的时间窗口偏移量(如1表示允许前后各1个时间窗口)
    • generateGoogleSecretKey

      public static String generateGoogleSecretKey(String account)
      生成谷歌认证器的扫码字符串 (形如:otpauth://totp/{account}?secret={secretKey})
      参数:
      account - 账户名
      返回:
      /
    • generateGoogleSecretKey

      public static String generateGoogleSecretKey(String account, String secretKey)
      生成谷歌认证器的扫码字符串 (形如:otpauth://totp/{account}?secret={secretKey})
      参数:
      account - 账户名
      secretKey - TOTP 秘钥
      返回:
      /
    • generateGoogleSecretKey

      public static String generateGoogleSecretKey(String account, String issuer, String secretKey)
      生成谷歌认证器的扫码字符串 (形如:otpauth://totp/{issuer}:{account}?secret={secretKey}&issuer={issuer})
      参数:
      account - 账户名
      issuer - 签发者
      secretKey - TOTP 秘钥
      返回:
      /