🛠️ToolsShed

ランダムキー生成

カスタム長・文字セットで暗号的に安全なAPIキー・シークレット・トークンを生成します。

よくある質問

コード実装

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.