Skip to content

Commit ce0b35b

Browse files
committed
Fix excessive key length recommendations.
1 parent 94184ab commit ce0b35b

File tree

3 files changed

+7
-5
lines changed

3 files changed

+7
-5
lines changed

README.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,9 @@ final Key key;
3232
{
3333
final KeyGenerator keyGenerator = KeyGenerator.getInstance(totp.getAlgorithm());
3434

35-
// SHA-1 and SHA-256 prefer 64-byte (512-bit) keys; SHA512 prefers 128-byte (1024-bit) keys
36-
keyGenerator.init(512);
35+
// Key length should match the length of the HMAC output (160 bits for SHA-1, 256 bits
36+
// for SHA-256, and 512 bits for SHA-512).
37+
keyGenerator.init(160);
3738

3839
key = keyGenerator.generateKey();
3940
}

src/main/java/overview.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ <h2>Usage</h2>
3939
<pre>final Key secretKey;
4040
{
4141
final KeyGenerator keyGenerator = KeyGenerator.getInstance(totp.getAlgorithm());
42-
keyGenerator.init(20);
42+
keyGenerator.init(160);
4343

4444
secretKey = keyGenerator.generateKey();
4545
}</pre>

src/test/java/com/eatthepath/otp/ExampleApp.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,9 @@ public static void main(final String[] args) throws NoSuchAlgorithmException, In
3434
{
3535
final KeyGenerator keyGenerator = KeyGenerator.getInstance(totp.getAlgorithm());
3636

37-
// SHA-1 and SHA-256 prefer 64-byte (512-bit) keys; SHA512 prefers 128-byte (1024-bit) keys
38-
keyGenerator.init(512);
37+
// Key length should match the length of the HMAC output (160 bits for SHA-1, 256 bits
38+
// for SHA-256, and 512 bits for SHA-512).
39+
keyGenerator.init(160);
3940

4041
key = keyGenerator.generateKey();
4142
}

0 commit comments

Comments
 (0)