这是一个基于 Golang 开发的邮箱生成器,可以从词库中随机选择单词并生成邮箱 CSV 文件。
- 从词库中真随机选择单词
- 为每个单词添加4位或5位真随机数
- 同时生成 CSV 和 TXT 两种格式文件
- TXT 格式:账号----密码(一行一个,无表头)
- 支持自定义生成数量(配置)
- 支持自定义域名和输出文件名(配置)
- 支持自定义密码长度(配置)
- 支持指定固定密码(配置,如果为空则随机生成)
- 支持自定义名称前缀(配置,可为空)
- 支持自定义邮箱配额(配置,默认5GB)
- 密码安全性:生成MD5 crypt哈希密码,同时提供加密的明文密码用于解密
- 密码解密功能:支持从CSV文件中解密password_encode字段获取明文密码
- 模块化架构:代码按功能分类到utils包中,便于维护和扩展
# 编译程序
go build -o createMail main.go程序使用 config.json 配置文件来设置所有参数。程序内置了默认配置文件,如果执行目录中不存在配置文件,程序会自动创建一个。
程序内嵌了默认的配置文件和词库文件。当您首次运行程序或在新目录中运行时:
- 程序会检查当前目录是否存在
config.json文件 - 如果不存在,程序会自动从内嵌配置创建
config.json文件 - 程序会检查词库文件是否存在(默认为
words.json) - 如果词库文件不存在,程序会自动从内嵌词库复制到本地
- 然后使用这些配置文件继续执行
默认创建的 config.json 文件内容如下:
{
"count": 10,
"domain": "example.com",
"output": "mailboxes",
"words": "words.json",
"passwordLength": 8,
"fixedPassword": "",
"namePrefix": "",
"quota": 5368709120
}count: 生成邮箱的数量(必须大于0)domain: 邮箱域名,不含@符号(不能为空)output: 输出文件名,不含扩展名(不能为空)words: 词库文件路径(不能为空)passwordLength: 密码长度(默认8位,如果小于1则使用默认值)fixedPassword: 指定固定密码(如果为空则随机生成密码)namePrefix: 名称前缀(可为空,如果设置则会添加到邮箱地址和全名前面)quota: 邮箱配额(字节数,默认5368709120即5GB,如果小于等于0则使用默认值)
程序采用交互式用户界面,运行后会显示操作选项:
# 运行程序
./createMail程序启动后会显示:
=== 邮箱生成器 ===
请输入操作选项:
1. 直接按回车 - 生成邮箱
2. 输入CSV文件路径 - 解密密码
请输入:
直接按回车键即可使用默认配置文件 config.json 生成邮箱:
请输入: [直接按回车]
开始生成邮箱...
输入要解密的CSV文件路径:
请输入: mailboxes.csv
正在解密文件: mailboxes.csv
重要说明:
- 程序支持两个主要功能:生成邮箱和解密密码
- 生成功能:直接按回车,程序会使用默认配置文件
config.json - 解密功能:输入CSV文件路径,程序会解密password_encode字段获取明文密码
- 如果配置文件不存在,程序会自动从内嵌配置创建该文件
- 如果配置文件格式错误,程序将停止运行
程序采用交互式界面,无需命令行参数:
- 生成邮箱:直接按回车键,程序会使用默认配置文件
config.json生成邮箱 - 解密密码:输入CSV文件路径,程序会解密password_encode字段获取明文密码
程序会自动处理配置文件和词库文件的创建,无需手动准备。
注意:生成邮箱时,所有配置都必须在配置文件中设置。
生成12位随机密码:
{
"count": 10,
"domain": "example.com",
"output": "mailboxes",
"words": "words.json",
"passwordLength": 12,
"fixedPassword": ""
}为所有邮箱设置相同的固定密码:
{
"count": 10,
"domain": "example.com",
"output": "mailboxes",
"words": "words.json",
"passwordLength": 8,
"fixedPassword": "MySecurePassword123"
}注意:当设置了 fixedPassword 时,passwordLength 参数将被忽略,所有邮箱将使用指定的固定密码。
为所有邮箱的地址和全名添加统一前缀:
{
"count": 10,
"domain": "company.com",
"output": "mailboxes",
"words": "words.json",
"passwordLength": 8,
"fixedPassword": "",
"namePrefix": "员工_",
"quota": 5368709120
}生成的邮箱将包含前缀,例如:员工_word123@company.com,全名为:员工_word
设置不同的邮箱配额(以字节为单位):
{
"count": 10,
"domain": "example.com",
"output": "mailboxes",
"words": "words.json",
"passwordLength": 8,
"fixedPassword": "",
"namePrefix": "",
"quota": 10737418240
}配额说明:
- 默认配额:5368709120 字节(5GB)
- 上述示例:10737418240 字节(10GB)
- 如果设置为0或负数,将使用默认配额
生成的 CSV 文件包含以下字段:
username: 完整邮箱地址full_name: 全名(使用单词作为全名)is_admin: 是否管理员(默认:0)quota: 配额(默认:5368709120,即5GB)local_part: 本地部分(单词+随机数)domain: 域名active: 是否激活(默认:1)password: MD5 crypt格式的哈希密码(格式:$1$salt$hash)password_encode: 加密的明文密码(可通过解密功能获取原始密码)
username,full_name,is_admin,quota,local_part,domain,active,password,password_encode
unai8855@example.com,unai,0,5368709120,unai8855,example.com,1,$1$Pa7KSEDS$LjSPJwatYT1DbqkCjfNn2p,5744566b53554534656a493d
ukases02737@example.com,ukases,0,5368709120,ukases02737,example.com,1,$1$apV5z.3K$QzuHayVhMkyIWXed0l0iyL,563246616231466c576c553dunai8855@example.com----WBOiF9XG
ukases02737@example.com----WKh88TkT
outsmoked8971@example.com----bQYqYGPD
$ ./createMail
=== 邮箱生成器 ===
请输入操作选项:
1. 直接按回车 - 生成邮箱
2. 输入CSV文件路径 - 解密密码
请输入: mailboxes.csv
正在解密文件: mailboxes.csv
开始解密文件: mailboxes.csv
找到password_encode列,索引: 8
解密结果将保存到: decode_20251013135530.txt
解密完成,共处理 2 条记录,结果已保存到 decode_20251013135530.txt- 使用
crypto/rand包实现真随机数生成 - 支持大文件词库的高效读取
- 内存友好的流式处理
- 完整的错误处理机制
- 内嵌默认配置文件,支持自动配置文件创建
- 使用 Go embed 包实现配置文件嵌入,无需外部依赖
- 支持自定义密码长度(1-任意位数)
- 灵活的名称前缀配置,支持多语言前缀
- 精确的配额管理,支持字节级配额设置
- 支持固定密码和随机密码两种模式
- 密码生成使用加密安全的随机数生成器
- MD5 crypt哈希算法:实现标准的MD5 crypt密码哈希,兼容Unix/Linux系统
- 双重密码存储:同时提供哈希密码和加密明文密码,满足不同使用场景
- 密码解密功能:支持从CSV文件中解密获取原始明文密码
- 模块化代码架构:
utils/password.go: 密码相关功能(生成、哈希、加密、解密)utils/file.go: 文件操作功能(配置加载、CSV/TXT生成、解密)utils/random.go: 随机数和字符串生成功能main.go: 主程序逻辑和命令行参数处理