本文目录导读:

Bash 脚本(Linux/Unix)
#!/bin/bash
# 单词列表文件路径(每行一个单词)
WORD_FILE="/usr/share/dict/words"
# 生成密码短语
generate_passphrase() {
local words=4 # 单词数量
local separator="-" # 分隔符
# 如果单词文件不存在则创建简单列表
if [[ ! -f "$WORD_FILE" ]]; then
cat > /tmp/words.txt << EOF
apple
banana
cherry
dragon
eagle
forest
garden
hunter
island
jungle
knight
lemon
mountain
noble
ocean
piano
queen
river
silver
tiger
EOF
WORD_FILE="/tmp/words.txt"
fi
# 获取单词总数
total=$(wc -l < "$WORD_FILE")
# 随机选择单词
phrase=""
for ((i=0; i<words; i++)); do
rand=$((RANDOM % total + 1))
word=$(sed -n "${rand}p" "$WORD_FILE")
# 首字母大写
word="$(tr '[:lower:]' '[:upper:]' <<< ${word:0:1})${word:1}"
phrase="${phrase}${word}${separator}"
done
# 移除最后一个分隔符
phrase="${phrase%$separator}"
# 添加数字和特殊字符增强安全性
number=$((RANDOM % 99 + 10))
special=("@" "#" "$" "%" "&" "!" "?")
rand_special=${special[$((RANDOM % ${#special[@]}))]}
echo "${phrase}${rand_special}${number}"
}
generate_passphrase
Python 脚本(跨平台)
import random
import string
import os
def generate_passphrase(
num_words=4,
separator="-",
capitalize=True,
include_numbers=True,
include_special=True
):
"""
生成随机密码短语
参数:
num_words: 单词数量
separator: 单词分隔符
capitalize: 是否首字母大写
include_numbers: 是否包含数字
include_special: 是否包含特殊字符
"""
# 预定义单词列表(可根据需要扩展)
word_list = [
"apple", "banana", "cherry", "dragon", "eagle",
"forest", "garden", "hunter", "island", "jungle",
"knight", "lemon", "mountain", "noble", "ocean",
"piano", "queen", "river", "silver", "tiger",
"amber", "blaze", "coral", "dawn", "ember",
"frost", "glade", "hazel", "ivory", "jade",
"koala", "lunar", "mist", "nova", "opal",
"pearl", "quartz", "raven", "solar", "topaz",
"ultra", "vivid", "willow", "xenon", "yacht", "zebra"
]
# 确保有足够多的单词
if num_words > len(word_list):
raise ValueError(f"只能选择最多 {len(word_list)} 个单词")
# 随机选择单词
selected_words = random.sample(word_list, num_words)
# 首字母大写处理
if capitalize:
selected_words = [word.capitalize() for word in selected_words]
# 连接单词
phrase = separator.join(selected_words)
# 添加数字
if include_numbers:
numbers = ''.join(random.choices(string.digits, k=2))
phrase += numbers
# 添加特殊字符
if include_special:
special_chars = "!@#$%^&*()_+-=[]{}|;:,.<>?"
special = random.choice(special_chars)
phrase += special
# 随机打乱位置
phrase_list = list(phrase)
random.shuffle(phrase_list)
return ''.join(phrase_list)
def generate_secure_phrase():
"""生成更安全的密码短语"""
# 使用系统随机源
import secrets
words = secrets.SystemRandom().choice([
"Avalanche", "Blizzard", "Cascade", "Diamond", "Eclipse",
"Falcon", "Galaxy", "Horizon", "Infinity", "Jupiter",
"Kinetic", "Liberty", "Magnetic", "Neptune", "Orbit",
"Photon", "Quantum", "Radar", "Saturn", "Titan"
] for _ in range(3))
# 使用 secrets 模块生成安全随机数
number = secrets.randbelow(899) + 100
special = secrets.choice("!@#$%^&*")
return f"{words[0]}-{words[1]}-{words[2]}{special}{number}"
# 使用示例
if __name__ == "__main__":
print("简单密码短语:", generate_passphrase())
print("安全密码短语:", generate_secure_phrase())
print("自定义配置:", generate_passphrase(
num_words=5,
separator="_",
capitalize=False,
include_numbers=True,
include_special=False
))
Node.js 脚本
const crypto = require('crypto');
// 单词列表
const WORDS = [
'apple', 'banana', 'cherry', 'dragon', 'eagle',
'forest', 'garden', 'hunter', 'island', 'jungle',
'knight', 'lemon', 'mountain', 'noble', 'ocean',
'piano', 'queen', 'river', 'silver', 'tiger'
];
/**
* 生成密码短语
* @param {number} numWords 单词数量
* @param {string} separator 分隔符
* @param {boolean} capitalize 是否首字母大写
* @returns {string}
*/
function generatePassphrase(numWords = 4, separator = '-', capitalize = true) {
// 使用密码学安全的随机数生成器
const randomBytes = crypto.randomBytes(numWords);
let selectedWords = [];
for (let i = 0; i < numWords; i++) {
// 使用随机字节索引单词
const index = randomBytes[i] % WORDS.length;
let word = WORDS[index];
if (capitalize) {
word = word.charAt(0).toUpperCase() + word.slice(1);
}
selectedWords.push(word);
}
// 基础短语
let passphrase = selectedWords.join(separator);
// 添加随机数字 (100-999)
const numbers = Math.floor(crypto.randomBytes(1)[0] / 255 * 900 + 100);
passphrase += numbers;
// 添加随机特殊字符
const specialChars = '!@#$%^&*()_+-=[]{}|;:,.<>?';
const specialIndex = crypto.randomBytes(1)[0] % specialChars.length;
passphrase += specialChars[specialIndex];
return passphrase;
}
// 使用示例
console.log('生成的密码短语:', generatePassphrase());
console.log('自定义短语:', generatePassphrase(5, '_', false));
PowerShell 脚本(Windows)
function New-RandomPassphrase {
param(
[int]$WordCount = 4,
[string]$Separator = "-",
[switch]$Capitalize = $true
)
# 单词列表
$wordList = @(
"apple", "banana", "cherry", "dragon", "eagle",
"forest", "garden", "hunter", "island", "jungle",
"knight", "lemon", "mountain", "noble", "ocean",
"piano", "queen", "river", "silver", "tiger"
)
# 随机选择单词
$selectedWords = @()
for ($i = 0; $i -lt $WordCount; $i++) {
$index = Get-Random -Minimum 0 -Maximum $wordList.Count
$word = $wordList[$index]
if ($Capitalize) {
$word = $word.Substring(0,1).ToUpper() + $word.Substring(1)
}
$selectedWords += $word
}
# 连接单词
$passphrase = $selectedWords -join $Separator
# 添加数字
$numbers = Get-Random -Minimum 100 -Maximum 999
$passphrase += $numbers.ToString()
# 添加特殊字符
$specialChars = "!@#$%^&*()_+-=[]{}|;:,.<>?"
$specialIndex = Get-Random -Minimum 0 -Maximum $specialChars.Length
$passphrase += $specialChars[$specialIndex]
return $passphrase
}
# 使用示例
Write-Host "生成的密码短语: $(New-RandomPassphrase)"
Write-Host "自定义配置: $(New-RandomPassphrase -WordCount 5 -Separator "_" -Capitalize:$false)"
安全建议
- 使用密码学安全的随机数生成器(如 Python 的
secrets模块,Node.js 的crypto) - 定期更新密码短语
- 避免使用常见单词组合
- 密码短语长度建议:至少 4 个单词 + 数字 + 特殊字符
- 不同服务使用不同密码短语
- 考虑使用密码管理器存储
这些脚本可以根据需要调整单词列表、单词数量、分隔符和附加字符,对于生产环境,建议使用更长的单词列表并支持自定义字典文件。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播