Package org.aoju.bus.crypto.digest.otp
Class HOTP
java.lang.Object
org.aoju.bus.crypto.digest.otp.HOTP
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionintgenerate(long counter) 生成一次性密码static StringgenerateSecretKey(int numBytes) 生成共享密钥的Base32表示形式获取HMAC算法int获取密码长度,可以是6,7,8
-
Field Details
-
DEFAULT_PASSWORD_LENGTH
public static final int DEFAULT_PASSWORD_LENGTH默认密码长度.- See Also:
-
-
Constructor Details
-
HOTP
public HOTP(byte[] key) 构造,使用默认密码长度和默认HMAC算法(HmacSHA1)- Parameters:
key- 共享密码,RFC 4226要求最少128位
-
HOTP
public HOTP(int passwordLength, byte[] key) 构造,使用默认HMAC算法(HmacSHA1)- Parameters:
passwordLength- 密码长度,可以是6,7,8key- 共享密码,RFC 4226要求最少128位
-
HOTP
public HOTP(int passwordLength, org.aoju.bus.core.lang.Algorithm algorithm, byte[] key) 构造- Parameters:
passwordLength- 密码长度,可以是6,7,8algorithm- HMAC算法枚举key- 共享密码,RFC 4226要求最少128位
-
-
Method Details
-
generateSecretKey
生成共享密钥的Base32表示形式- Parameters:
numBytes- 将生成的种子字节数量。- Returns:
- 共享密钥
-
generate
public int generate(long counter) 生成一次性密码- Parameters:
counter- 事件计数的值,8 字节的整数,称为移动因子(moving factor), 可以是基于计次的动移动因子,也可以是计时移动因子- Returns:
- 一次性密码的int值
-
getPasswordLength
public int getPasswordLength()获取密码长度,可以是6,7,8- Returns:
- 密码长度,可以是6,7,8
-
getAlgorithm
-