perling/docs/registration-number-format.md

1.7 KiB

Registration Number Format

Secure Registration Number Generation

The system automatically generates a unique 12-character registration number for each announcement with enhanced security to prevent easy guessing.

Format Structure:

ENV + XXXXXXXXX

Where:

  • ENV = Environmental document prefix (3 characters)
  • XXXXXXXXX = 9 secure random alphanumeric characters (excluding similar-looking characters)

Character Pool:

  • Uses: 23456789ABCDEFGHJKLMNPQRSTUVWXYZ
  • Excludes: 0, 1, I, O (to prevent confusion)
  • No lowercase letters (for consistency)

Examples:

  • ENV4B7X9K2MQ - Secure random generation
  • ENVH3K8P5W7R - Another secure random generation
  • ENV9F2N6Y4MP - Each number is unpredictable

Security Features:

  1. Cryptographic Hash - Uses SHA-256 for randomness
  2. Timestamp Seed - Includes microtime for uniqueness
  3. Unpredictable - No date/time patterns visible
  4. No Sequential - Cannot guess next number
  5. Character Filtering - Excludes confusing characters

Technical Implementation:

  • Generated using cryptographic hash functions
  • Seeds include timestamp + microtime + random integers
  • Character pool designed to avoid visual confusion
  • Multiple entropy sources for maximum security
  • Still maintains 12-character length requirement

Usage:

  1. Number is automatically generated when form is submitted
  2. Field is completely hidden from users (no manual interaction)
  3. System validates uniqueness before saving to database
  4. Success message shows the final registration number
  5. Each generation is completely unpredictable and secure
  6. No user interface for regeneration (fully automated)