Skip to content

skyle1995/createMail

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

邮箱生成器

这是一个基于 Golang 开发的邮箱生成器,可以从词库中随机选择单词并生成邮箱 CSV 文件。

功能特点

  • 从词库中真随机选择单词
  • 为每个单词添加4位或5位真随机数
  • 同时生成 CSV 和 TXT 两种格式文件
  • TXT 格式:账号----密码(一行一个,无表头)
  • 支持自定义生成数量(配置)
  • 支持自定义域名和输出文件名(配置)
  • 支持自定义密码长度(配置)
  • 支持指定固定密码(配置,如果为空则随机生成)
  • 支持自定义名称前缀(配置,可为空)
  • 支持自定义邮箱配额(配置,默认5GB)
  • 密码安全性:生成MD5 crypt哈希密码,同时提供加密的明文密码用于解密
  • 密码解密功能:支持从CSV文件中解密password_encode字段获取明文密码
  • 模块化架构:代码按功能分类到utils包中,便于维护和扩展

使用方法

编译

# 编译程序
go build -o createMail main.go

配置文件

程序使用 config.json 配置文件来设置所有参数。程序内置了默认配置文件,如果执行目录中不存在配置文件,程序会自动创建一个。

自动配置文件创建

程序内嵌了默认的配置文件和词库文件。当您首次运行程序或在新目录中运行时:

  1. 程序会检查当前目录是否存在 config.json 文件
  2. 如果不存在,程序会自动从内嵌配置创建 config.json 文件
  3. 程序会检查词库文件是否存在(默认为 words.json
  4. 如果词库文件不存在,程序会自动从内嵌词库复制到本地
  5. 然后使用这些配置文件继续执行

配置文件格式

默认创建的 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: 加密的明文密码(可通过解密功能获取原始密码)

示例输出

CSV 格式 (mailboxes.csv)

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,563246616231466c576c553d

TXT 格式 (mailboxes.txt)

unai8855@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: 主程序逻辑和命令行参数处理

About

BillionMail 邮局邮箱生成器

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages