作者 | 顾北
对这个世界充满向往的理想主义者

利用Java生成穷举字典(数字+字母(大小写)+字符),可用于爆破各种密码等场景,原理枚举数组中元素的各种组合情况。

用户可根据需要自由选择生成字典的长度,将生成的密码字典导出为文本格式。

public class DictionarySeek {//密码可能会包含的字符集合private static char[] fullCharSource = { '1','2','3','4','5','6','7','8','9','0','a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n',  'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z','A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N',  'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z','~', '!', '@', '#', '$', '%', '^', '&', '*', '(', ')', '_', '+', '{', '}', '|', ':', '"', '<', '>', '?', ';', '\'', ',', '.', '/', '-', '=', '`'};//将可能的密码集合长度private static int fullCharLength = fullCharSource.length;//maxLength:生成的字符串的最大长度public static void generate(int maxLength) throws FileNotFoundException, UnsupportedEncodingException {//计数器,多线程时可以对其加锁,当然得先转换成Integer类型。int counter = 0;StringBuilder buider = new StringBuilder();PrintWriter pw = new PrintWriter(new OutputStreamWriter(new FileOutputStream("C://密码字典.txt"), "utf-8"));while (buider.toString().length() <= maxLength) {buider = new StringBuilder(maxLength*2);int _counter = counter;//10进制转换成26进制while (_counter >= fullCharLength) {//获得低位buider.insert(0, fullCharSource[_counter % fullCharLength]);_counter = _counter / fullCharLength;//处理进制体系中只有10没有01的问题,在穷举里面是可以存在01的_counter--;}//最高位buider.insert(0,fullCharSource[_counter]);counter++;pw.write(buider.toString()+"\n");System.out.println(buider.toString());}}public static void main(String[] args) throws FileNotFoundException, UnsupportedEncodingException {System.out.print("生成的字典位置:D://密码字典.txt"+"\n"+"请输入你需要生成的字典位数:");Scanner sc = new Scanner(System.in);int x = sc.nextInt();DictionarySeek.generate(x);}
}

基于Java语言密码字典生成器实现相关推荐

  1. java数字密码字典生成器

    直接上代码,如有不足请指出 import java.io.*;/*** 描述:*java代码实现的字典生成器,新手写的,有不足之处可以指出*写个main()调用即可,create方法的参数为文件存储的 ...

  2. 基于Java语言构建区块链(五)—— 地址(钱包)

    基于Java语言构建区块链(五)-- 地址(钱包) 2018年03月25日 18:02:06 wangwei_hz 阅读数:1292更多 个人分类: 区块链bitcoin比特币 文章的主要思想和内容均 ...

  3. java+SpringBoot+HTML+Mysq基于Java语言开发的奶茶外卖平台

     详细功能设计:请点击下面链接查看 java+SpringBoot+HTML+Mysq基于Java语言开发的奶茶外卖平台_哔哩哔哩_bilibili 源码+论文获取: 源码+论文获取请私信获取 摘   ...

  4. (附源码)计算机毕业设计SSM基于JAVA语言的国货美妆店管理系统

    (附源码)计算机毕业设计SSM基于JAVA语言的国货美妆店管理系统 项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Ecl ...

  5. Leetcode刷题第1题:两数之和(基于Java语言)

    ** Leetcode刷题第1题:两数之和(基于Java语言) ** 题目: 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标 ...

  6. Leetcode刷题 463题:岛屿的周长(基于Java语言)

    ** Leetcode刷题 463题:岛屿的周长(基于Java语言) ** 一. 题目描述: 给定一个包含 0 和 1 的二维网格地图,其中 1 表示陆地 0 表示水域. 网格中的格子水平和垂直方向相 ...

  7. 基于Java语言构建区块链(一)—— 基本原型

    最终内容请以原文为准:https://wangwei.one/posts/df1... 引言 区块链技术是一项比人工智能更具革命性的技术,人工智能只是提高了人类的生产力,而区块链则将改变人类社会的生产 ...

  8. java 计算移动平均线_基于Java语言开发的个性化股票分析技术:移动平均线(MA)...

    基于Java语言开发的个性化股票分析技术:移动平均线(MA) 基于 Java 语言开发的个性化股票分析技术:移动平均线(MA)移动平均线(MA)是以道·琼斯的"平均成本概念"为理论 ...

  9. 基于Java语言构建区块链(四)—— 交易(UTXO)

    基于Java语言构建区块链(四)-- 交易(UTXO) 2018年03月11日 00:48:01 wangwei_hz 阅读数:909 标签: 区块链比特币 更多 个人分类: 区块链 文章的主要思想和 ...

最新文章

  1. 图像边缘检测之拉普拉斯(Laplacian)C++实现
  2. Mocha BSM基础架构管理——灵活的网络拓扑展现
  3. HDU 3033 I love sneakers! (分组背包变形)
  4. 【自动驾驶】4.分布式实时通信——DDS技术
  5. Java里的容器 Collection 简介
  6. 计算机网络教学方式探讨论文,学生老师论文,关于关于高中计算机网络教学效率提升相关参考文献资料-免费论文范文...
  7. bower overrides 配置
  8. 现有代码移植到Metro App
  9. Node.js笔记-使用nodejs-websocket构建WebSocket服务
  10. SAS在金融中的应用七
  11. 奇怪的拍立得,按下快门,你就被AI变成一张简笔涂鸦 | 补童年·有代码
  12. 小学计算机应用到英语课教案,信息技术在小学英语教学中的应用
  13. Chrome漏洞分析与利用(三)——Issue-1062091漏洞分析
  14. stm32流水灯c语言程序,STM32——流水灯程序
  15. 合天网安 第四周 | Check your source code
  16. [CQOI2010] 鼹鼠
  17. 指尖轻舞桌面:Slide On Desk - 在线使用指引
  18. 互动百科变快懂百科,纳入字节抖音旗下后要爆发了?
  19. 判断全角空格和半角空格
  20. IM后台开发六之群聊接口实现

热门文章

  1. Vue的localStorage缓存遗留问题
  2. 2022 BUAA 软工第二次作业
  3. LINUX/UNIX系统中nobody用户信息
  4. C语言中的这个小细节你知道吗?
  5. IDEA 下载依赖包源码报错 Cannot download sources Sources not found for:XXX
  6. 笔记本电脑键盘无法使用的参考解决方案
  7. FC30蓝牙手柄连接小米手机3试玩-经典红白机的回忆
  8. 打印机八大常见共性故障解决方法
  9. emwin自定义颜色
  10. 初入坑GWAS,学习plink还是TASSEL?