Class SaTotpUtil

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

public class SaTotpUtil extends Object
TOTP 工具类,支持 生成/验证 动态一次性密码
Since:
1.42.0
Author:
click33
  • Constructor Details

    • SaTotpUtil

      public SaTotpUtil()
  • Method Details

    • generateSecretKey

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

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

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

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

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

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

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