脚本怎样生成随机账号

wen 实用脚本 26

本文目录导读:

脚本怎样生成随机账号

  1. Python 脚本生成
  2. JavaScript 版本
  3. Bash/Shell 脚本
  4. 完整示例:批量账号生成器
  5. 注意事项

Python 脚本生成

基础用户名生成器

import random
import string
def generate_username(length=8):
    # 小写字母 + 数字
    chars = string.ascii_lowercase + string.digits
    username = ''.join(random.choice(chars) for _ in range(length))
    return username
def generate_account(prefix="user"):
    # 带前缀的用户名
    suffix = ''.join(random.choices(string.digits, k=6))
    return f"{prefix}_{suffix}"
def generate_random_email():
    # 生成随机邮箱
    username = generate_username(10)
    domains = ['gmail.com', 'outlook.com', 'yahoo.com', '163.com']
    domain = random.choice(domains)
    return f"{username}@{domain}"
# 批量生成
for i in range(10):
    print(f"用户{i+1}: {generate_account()}, 邮箱: {generate_random_email()}")

高级账号生成器

import random
import string
from datetime import datetime
class AccountGenerator:
    def __init__(self):
        self.adjectives = ['happy', 'cool', 'smart', 'fast', 'blue', 'red', 'gold', 'wild']
        self.nouns = ['tiger', 'eagle', 'wolf', 'bear', 'lion', 'fox', 'hawk', 'shark']
    def generate_username(self, style='random'):
        if style == 'random':
            return self._random_name()
        elif style == 'adjectives':
            return self._adjective_name()
        elif style == 'pattern':
            return self._pattern_name()
    def _random_name(self):
        # 完全随机
        chars = string.ascii_lowercase + string.digits
        return ''.join(random.choices(chars, k=8))
    def _adjective_name(self):
        # 形容词+名词组合
        adj = random.choice(self.adjectives)
        noun = random.choice(self.nouns)
        num = random.randint(10, 999)
        return f"{adj}{noun}{num}"
    def _pattern_name(self):
        # 带时间戳的模式
        timestamp = datetime.now().strftime("%m%d")
        letters = ''.join(random.choices(string.ascii_lowercase, k=4))
        return f"{letters}{timestamp}"
# 使用示例
generator = AccountGenerator()
print(generator.generate_username('adjectives'))
print(generator.generate_username('pattern'))

JavaScript 版本

// Node.js 版本
const crypto = require('crypto');
class AccountGenerator {
    constructor() {
        this.prefixes = ['test', 'demo', 'dev', 'qa', 'prod'];
        this.suffixes = ['admin', 'user', 'guest', 'vip', 'member'];
    }
    generateUsername(length = 8) {
        const chars = 'abcdefghijklmnopqrstuvwxyz0123456789';
        let username = '';
        for (let i = 0; i < length; i++) {
            username += chars.charAt(Math.floor(Math.random() * chars.length));
        }
        return username;
    }
    generateEmail(username) {
        const domains = ['gmail.com', 'outlook.com', 'test.com', 'demo.com'];
        const domain = domains[Math.floor(Math.random() * domains.length)];
        return `${username}@${domain}`;
    }
    batchGenerate(count = 100) {
        const accounts = [];
        for (let i = 0; i < count; i++) {
            const username = this.generateUsername();
            accounts.push({
                username: username,
                email: this.generateEmail(username),
                password: crypto.randomBytes(8).toString('hex'),
                created_at: new Date().toISOString()
            });
        }
        return accounts;
    }
}
// 使用
const gen = new AccountGenerator();
const accounts = gen.batchGenerate(5);
console.log(accounts);

Bash/Shell 脚本

#!/bin/bash
# 生成随机账号函数
generate_account() {
    local length=${1:-8}
    # 使用 /dev/urandom 生成随机字符串
    local username=$(tr -dc 'a-z0-9' < /dev/urandom | head -c $length)
    # 生成随机邮箱
    local domains=("gmail.com" "outlook.com" "yahoo.com" "test.com")
    local domain=${domains[$RANDOM % ${#domains[@]}]}
    echo "$username@$domain"
}
# 批量生成
generate_batch() {
    local count=${1:-10}
    echo "生成 $count 个账号:"
    echo "-------------------"
    for i in $(seq 1 $count); do
        local account=$(generate_account)
        echo "账号 $i: $account"
    done
}
# 带前缀的账号
generate_prefix_account() {
    local prefix=${1:-"user"}
    local suffix=$(date +%s | tail -c 6)
    echo "${prefix}${suffix}"
}
# 使用示例
generate_batch 5
echo ""
echo "带前缀的账号: $(generate_prefix_account test)"

完整示例:批量账号生成器

import random
import string
import json
from datetime import datetime
class BatchAccountGenerator:
    def __init__(self):
        self.config = {
            'username_length': 8,
            'password_length': 12,
            'include_numbers': True,
            'include_special_chars': False
        }
    def generate_password(self, length=None):
        if length is None:
            length = self.config['password_length']
        chars = string.ascii_letters + string.digits
        if self.config['include_special_chars']:
            chars += string.punctuation
        return ''.join(random.choices(chars, k=length))
    def generate_accounts(self, count=100, output_format='json'):
        accounts = []
        for i in range(count):
            # 生成用户名
            username = self._generate_unique_username()
            # 生成邮箱
            email = self._generate_email(username)
            # 生成密码
            password = self.generate_password()
            account = {
                'id': i + 1,
                'username': username,
                'email': email,
                'password': password,
                'created_at': datetime.now().isoformat()
            }
            accounts.append(account)
        return accounts
    def _generate_unique_username(self):
        # 组合多个模式
        patterns = [
            lambda: ''.join(random.choices(string.ascii_lowercase, k=6)) + str(random.randint(10, 99)),
            lambda: ''.join(random.choices(string.ascii_lowercase, k=4)) + str(int(datetime.now().timestamp()) % 10000),
            lambda: 'user_' + ''.join(random.choices(string.digits, k=8))
        ]
        return random.choice(patterns)()
    def _generate_email(self, username):
        domains = ['gmail.com', 'outlook.com', 'yahoo.com', 
                  'test.com', 'demo.com', 'example.com']
        return f"{username}@{random.choice(domains)}"
    def export_to_file(self, accounts, filename='accounts.json'):
        with open(filename, 'w') as f:
            json.dump(accounts, f, indent=2)
        print(f"已导出 {len(accounts)} 个账号到 {filename}")
# 使用示例
generator = BatchAccountGenerator()
accounts = generator.generate_accounts(10)
# 打印前5个
for acc in accounts[:5]:
    print(f"用户名: {acc['username']:20s} | 邮箱: {acc['email']:30s} | 密码: {acc['password']}")
# 导出到文件
generator.export_to_file(accounts)

注意事项

  1. 安全检查:生成的账号只应用于测试环境
  2. 唯一性:批量生成时注意检查重复
  3. 合规性:遵守平台服务条款,勿用于恶意用途

这些脚本可以根据需求调整参数,生成符合特定格式的随机账号。

抱歉,评论功能暂时关闭!