πŸ› οΈToolsShed

Random Key Generator

Generate cryptographically secure API keys, secrets, and tokens with custom length and charset.

Frequently Asked Questions

Code Implementation

import secrets
import string
import base64
import os

def generate_hex_key(bytes_count: int = 32) -> str:
    """Generate a cryptographically secure hex key."""
    return secrets.token_hex(bytes_count)

def generate_base64_key(bytes_count: int = 32) -> str:
    """Generate a URL-safe base64 key (no padding)."""
    return secrets.token_urlsafe(bytes_count)

def generate_alphanumeric_key(length: int = 32) -> str:
    """Generate a random alphanumeric key."""
    alphabet = string.ascii_letters + string.digits
    return "".join(secrets.choice(alphabet) for _ in range(length))

def generate_custom_key(length: int = 32, charset: str = "") -> str:
    """Generate a key from a custom character set."""
    if not charset:
        charset = string.ascii_letters + string.digits + "!@#$%^&*()-_=+"
    return "".join(secrets.choice(charset) for _ in range(length))

def generate_bytes_key(bytes_count: int = 32) -> bytes:
    """Generate raw random bytes."""
    return os.urandom(bytes_count)


if __name__ == "__main__":
    print("256-bit hex key:    ", generate_hex_key(32))
    print("256-bit base64 key: ", generate_base64_key(32))
    print("32-char alphanum:   ", generate_alphanumeric_key(32))
    print("32-char custom:     ", generate_custom_key(32))
    print("Raw bytes (hex):    ", generate_bytes_key(16).hex())

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.