回溯暴力Java密码破解器

2024-01-28

我的作业是用递归方法来破解给定长度的密码,n(无限且未知!)由小英文字母(a-z)组成。

这是创建随机密码的“Password”类:

import java.util.Random;

public class Password {
private String _password = "";

public Password(int length) {
    Random generator = new Random();
    for (int i = 0; i < length; ++i) {
        this._password = this._password + (char) (generator.nextInt(26) + 97);
    }
}

public boolean isPassword(String st) {
    return st.equals(this._password);
}

public String getPassword() {
    return this._password;
  }
}  

这是详细问题: “你必须写一个静态递归方法, public static String findPassword(Password p, int length)“破解”代码。 这是一个 main 方法的示例:

public class Main {                                                                                                     
    public static void main(String[] args) {                                                                            
        Password p = new Password(5);                                                                                   
        System.out.println(p.getPassword());                                                                            
        System.out.println(Ex14.findPassword(p, 5));                                                                    
    }                                                                                                                   
}       

重要笔记:

  1. 该方法必须是递归的,不使用任何循环。
  2. 您不能使用 getPassword 方法。
  3. 如果您想使用 String 类的方法,您可以only使用以下内容:charAt、子字符串、等于、长度。
  4. 您可以使用重载,但不能使用其他方法。 (不能使用 String.replace/String.replaceall)
  5. 您不能使用静态(全局)变量。
  6. 您不能使用任何数组。 ”

这是我到目前为止所拥有的,这显然不起作用; :\

public static String findPassword(Password p, int length) {
    return findPassword(p, length, "", 'a');
}

public static String findPassword(Password p, int length, String testPass, char charToChange) {
    int currDig = testPass.length() - 1;
    if (p.isPassword(testPass))
        return testPass;
    if (length == 0) // There is no password.
        return ""; // Returns null and not 0 because 0 is a password.
    if (length > testPass.length())
        return findPassword(p, length, testPass + charToChange, charToChange);
    if (testPass.length() == length) {
        //TODO if charToChange is 'z', then make it the one before it '++', and reset everything else to a.
        //if (charToChange == 'z') {
            // charToChange = 'a';
            // String newString = testPass.substring(0, currDig-1) +
            // (charToChange++)
            // +testPass.substring(currDig+1,testPass.length()-1);
            System.out.println("it's  z");
            // TODO currDig --;
            // String newerString = testPass.substring(0, currDig - 1)
            // + (char) (testPass.charAt(testPass.length() - 1) - 25);
            // currDig--;
        }
        return "";  
}

非常感谢!非常感激! - 三重S


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

回溯暴力Java密码破解器 的相关文章

  • Java new Date() 打印

    刚刚学习 Java 我知道这可能听起来很愚蠢 但我不得不问 System out print new Date 我知道参数中的任何内容都会转换为字符串 最终值是 new Date 返回对 Date 对象的引用 那么它是如何打印这个的呢 Mo
  • Java EE:如何获取我的应用程序的 URL?

    在 Java EE 中 如何动态检索应用程序的完整 URL 例如 如果 URL 是 localhost 8080 myapplication 我想要一个可以简单地将其作为字符串或其他形式返回给我的方法 我正在运行 GlassFish 作为应
  • Java - 将节点添加到列表的末尾?

    这是我所拥有的 public class Node Object data Node next Node Object data Node next this data data this next next public Object g
  • Java JDBC:更改表

    我希望对此表进行以下修改 添加 状态列 varchar 20 日期列 时间戳 我不确定该怎么做 String createTable Create table aircraft aircraftNumber int airLineCompa
  • 使用 Android 发送 HTTP Post 请求

    我一直在尝试从 SO 和其他网站上的大量示例中学习 但我无法弄清楚为什么我编写的示例不起作用 我正在构建一个小型概念验证应用程序 它可以识别语音并将其 文本 作为 POST 请求发送到 node js 服务器 我已确认语音识别有效 并且服务
  • Final字段的线程安全

    假设我有一个 JavaBeanUser这是从另一个线程更新的 如下所示 public class A private final User user public A User user this user user public void
  • 控制Android的前置LED灯

    我试图在用户按下某个按钮时在前面的 LED 上实现 1 秒红色闪烁 但我很难找到有关如何访问和使用前置 LED 的文档 教程甚至代码示例 我的意思是位于 自拍 相机和触摸屏附近的 LED 我已经看到了使用手电筒和相机类 已弃用 的示例 但我
  • 磁模拟

    假设我在 n m 像素的 2D 表面上有 p 个节点 我希望这些节点相互吸引 使得它们相距越远吸引力就越强 但是 如果两个节点之间的距离 比如 d A B 小于某个阈值 比如 k 那么它们就会开始排斥 谁能让我开始编写一些关于如何随时间更新
  • 路径中 File.separator 和斜杠之间的区别

    使用有什么区别File separator和一个正常的 在 Java 路径字符串中 与双反斜杠相反 平台独立性似乎不是原因 因为两个版本都可以在 Windows 和 Unix 下运行 public class SlashTest Test
  • 斯坦福 NLP - 处理文件列表时 OpenIE 内存不足

    我正在尝试使用斯坦福 CoreNLP 中的 OpenIE 工具从多个文件中提取信息 当多个文件 而不是一个 传递到输入时 它会给出内存不足错误 All files have been queued awaiting termination
  • 在两个活动之间传输数据[重复]

    这个问题在这里已经有答案了 我正在尝试在两个不同的活动之间发送和接收数据 我在这个网站上看到了一些其他问题 但没有任何问题涉及保留头等舱的状态 例如 如果我想从 A 类发送一个整数 X 到 B 类 然后对整数 X 进行一些操作 然后将其发送
  • 如何在 javadoc 中使用“<”和“>”而不进行格式化?

    如果我写
  • 如何在控制器、服务和存储库模式中使用 DTO

    我正在遵循控制器 服务和存储库模式 我只是想知道 DTO 在哪里出现 控制器应该只接收 DTO 吗 我的理解是您不希望外界了解底层域模型 从领域模型到 DTO 的转换应该发生在控制器层还是服务层 在今天使用 Spring MVC 和交互式
  • 在 Mac 上正确运行基于 SWT 的跨平台 jar

    我一直致力于一个基于 SWT 的项目 该项目旨在部署为 Java Web Start 从而可以在多个平台上使用 到目前为止 我已经成功解决了由于 SWT 依赖的系统特定库而出现的导出问题 请参阅相关thread https stackove
  • Eclipse Java 远程调试器通过 VPN 速度极慢

    我有时被迫离开办公室工作 这意味着我需要通过 VPN 进入我的实验室 我注意到在这种情况下使用 Eclipse 进行远程调试速度非常慢 速度慢到调试器需要 5 7 分钟才能连接到远程 jvm 连接后 每次单步执行断点 行可能需要 20 30
  • Android 中麦克风的后台访问

    是否可以通过 Android 手机上的后台应用程序 服务 持续监控麦克风 我想做的一些想法 不断聆听背景中的声音信号 收到 有趣的 音频信号后 执行一些网络操作 如果前台应用程序需要的话 后台应用程序必须能够智能地放弃对麦克风的访问 除非可
  • 玩!框架:运行“h2-browser”可以运行,但网页不可用

    当我运行命令时activator h2 browser它会使用以下 url 打开浏览器 192 168 1 17 8082 但我得到 使用 Chrome 此网页无法使用 奇怪的是它以前确实有效 从那时起我唯一改变的是JAVA OPTS以启用
  • 声明的包“”与预期的包不匹配

    我可以编译并运行我的代码 但 VSCode 中始终显示错误 早些时候有一个弹出窗口 我不记得是什么了 我点击了 全局应用 从那以后一直是这样 Output is there but so is the error The declared
  • 编译器抱怨“缺少返回语句”,即使不可能达到缺少返回语句的条件

    在下面的方法中 编译器抱怨缺少退货声明即使该方法只有一条路径 并且它包含一个return陈述 抑制错误需要另一个return陈述 public int foo if true return 5 鉴于Java编译器可以识别无限循环 https
  • 节拍匹配算法

    我最近开始尝试创建一个移动应用程序 iOS Android 它将自动击败比赛 http en wikipedia org wiki Beatmatching http en wikipedia org wiki Beatmatching 两

随机推荐

  • 无法在 Xcode 4.5 中为单个 ViewController 类加载两个笔尖 (.XIB) [重复]

    这个问题在这里已经有答案了 提前抱歉 我知道已经有很多类似的问题了 我尝试了所有解决方案 但没有任何一个对我有用 我正在使用 Xcode 4 5 2 并使用两个用于 iphone 5 ios 6 的 xib1 gt 根视图控制器5以及所有其
  • 将过滤器应用于数据集时,不在 gridview 中显示数据

    我的gridview在过滤时不显示数据 protected void Page Load object sender EventArgs e OleDbConnection conn new OleDbConnection Provider
  • 如何向 request.POST 添加信息?

    当用户使用表单创建内容时 所有信息都通过表单提交 该表单通过 AJAX 调用发送到以下视图 def goal create request if request method POST user request user request P
  • AS3 中的 Mixin 或 Trait 实现?

    我正在寻找有关如何实施的想法混合 特质 http debasishg blogspot com 2006 04 scala compose classes with mixins htmlAS3 中的样式系统 我希望能够将多个类组合成一个对
  • 如何显示 UIWebView 的滚动指示器

    我有一个UIWebView对于某些内容 我需要使其滚动指示器在短时间内可见 例如 UIScrollView flashScrollIndicators 知道如何做到这一点吗 从 iOS 5 0 开始 现在可以通过访问 scrollview
  • 在某些设备上,选项菜单不会出现在操作栏中

    我的操作栏中有一个选项菜单 但它不会出现在某些具有硬件菜单按钮的设备上 尽管有硬件按钮 我必须让它出现在操作栏中 我该怎么做 把这个放在你的onCreate method try ViewConfiguration config ViewC
  • Controller.User 在单元测试期间为 Null

    我的控制器操作方法中有以下代码 if User Identity IsAuthenticated 看起来效果很好 但是当我运行调用此操作的单元测试时 它失败了 因为User一片空白 谁能建议处理这个问题的最佳方法 我是否必须仅为单元测试而重
  • 在 IIS 8.0 上设置 asp.net 项目时出现 HTTP 错误 404.17

    我正在尝试在 Windows 8 计算机上的 IIS 8 0 上设置现有的 asp net 应用程序 但它给出了以下错误消息 HTTP Error 404 17 Not Found The requested content appears
  • 如何解组包含 DIFFGR 的 XML 代码

    JAXB 新手 我正在尝试解组XML 文档 我用的是xjc从 XSD 文件构建 DataSet 和 ObjectFactory 的命令
  • SwipeRefreshLayout 选项卡布局。 Webview无法向上滚动

    好的 我有一个选项卡视图 其中有一个网络视图 一个列表视图和一些其他页面 我希望能够执行 SwipeRefreshLayout 来刷新每个项目 我在每一页上都有这个工作 但是 当我在网络视图中向下滚动时 我无法向上滚动 它触发刷新并重建它
  • 删除最后一项时 UICollectionView 崩溃

    每当删除项目时 我都会尝试更新 uicollection 视图 所有单元格都删除得很好 但如果我删除该集合视图中的最后一个单元格 应用程序就会崩溃 并且我已将 self collectionview performBatchUpdates
  • 如何在 R 中最大化函数内的矩阵乘法

    我正在尝试最大化维度为 2x2 的矩阵参数的可能性 似然函数需要传入几个固定矩阵参数 似然也是其函数 数据 表示为 Y 和协方差矩阵 Sigma star 我将其作为下三角矩阵传递 对于计算是必要的 但我想保持这些固定并对此运行优化函数 在
  • 将指定的初始值设定项与未命名的嵌套数据类型一起使用

    我想知道是否可以在结构的未命名数据成员中使用指定的初始值设定项 哎呀 拗口 但是 是的 这是做我想做的事情的最干净的方法 如果我有 typedef struct MainStruct union uint8 t a8 16 uint64 t
  • 无法安装 Windows 版 GitHub

    当我尝试为 Windows 安装 github 时收到此错误 Application cannot be started Contact the application vendor 错误日志产生了这样的结果 PLATFORM VERSIO
  • 如何向控件添加工具提示?

    我想显示一个ToolTip当鼠标悬停在控件上时 如何在代码中以及设计器中创建工具提示 Here http msdn microsoft com en us library system windows forms tooltip aspx是
  • 如何自动将 String @RequestBody 解析为 json

    我有一个端点 它应该读取字符串值作为正文 RestController public class EndpointsController RequestMapping method RequestMethod PUT value api m
  • 使用 PDO 序列化数据是否危险

    I have 8 input type text name favour 01 我做那8个input进入一个array and serialize it i use PDO将其保存到数据库中 比反序列化它的输出 favour apple f
  • 正则表达式中的 JSLint“不安全 ^”

    JSLint 报告不安全的 对于以下行 这是为什么 或者每当我想否定某个角色类别时它就会抱怨 remove all non alphanumeric comma and dash characters 7s gd j5d a replace
  • Powershell - 使用特殊字符对字符串对象进行排序

    我在跑 S tst ssrst srst2 s zaa s a s zf Sort Object 我不应该得到回报吗 s a S tst s zaa s zf srst2 ssrst 但我得到以下信息 s a srst2 ssrst S t
  • 回溯暴力Java密码破解器

    我的作业是用递归方法来破解给定长度的密码 n 无限且未知 由小英文字母 a z 组成 这是创建随机密码的 Password 类 import java util Random public class Password private St