Download Latest Version Version 9.0.0 Breaking Change source code.tar.gz (14.1 kB)
Email in envelope

Get an email when there's a new version of Google2FA

Home / v9.0.0
Name Modified Size InfoDownloads / Week
Parent folder
README.md 2025-09-19 1.9 kB
Version 9.0.0 Breaking Change source code.tar.gz 2025-09-19 14.1 kB
Version 9.0.0 Breaking Change source code.zip 2025-09-19 23.1 kB
Totals: 3 Items   39.0 kB 0

⚠️ Version 9.0.0 Breaking Change

### Default Secret Key Length Increased

Version 9.0.0 introduces a breaking change: The default secret key length has been increased from 16 to 32 characters for enhanced security.

#### What Changed? - generateSecretKey() now generates 32-character secrets by default (previously 16) - This increases cryptographic entropy from 80 bits to 160 bits - Maintains full compatibility with Google Authenticator and other TOTP apps

#### Migration Guide

If you want to keep the previous behavior (16-character secrets):

```php // Old default behavior (v8.x and below) $secret = $google2fa->generateSecretKey();

// New way to get 16-character secrets (v9.0+) $secret = $google2fa->generateSecretKey(16);

If you want to use the new default (32-character secrets):

// This now generates 32-character secrets by default $secret = $google2fa->generateSecretKey();

Potential Impact Areas

  • Database schemas: Check if your google2fa_secret columns can handle 32 characters
  • Validation rules: Update any length validations that expect exactly 16 characters
  • Tests: Update test assertions expecting 16-character secrets
  • UI components: Ensure QR code displays and secret key fields accommodate longer secrets

Important: Existing 16-character secrets remain fully functional. Database updates are only needed if you want to use the new 32-character default behavior.

Why This Change?

While 16-character secrets meet RFC 6238 minimum requirements, 32-character secrets provide significantly better security:

  • 16 chars: 80 bits of entropy (adequate but minimal)
  • 32 chars: 160 bits of entropy (much stronger against brute force)

This change aligns with modern security best practices for cryptographic applications. ```

Source: README.md, updated 2025-09-19