实验内容及步骤
(一)使用JDK编译、运行简单的java程序
使用vim编辑器编写代码
编译,运行(二)使用IDEA进行调试
我们先新建一个项目 名字叫HelloJDB
,点击finish
就好了
HelloJDB
类 输入代码 编译运行,没有问题,我们在第五行下一个断点,鼠标单击或者使用Ctrl+F8
快捷键 然后单击菜单「Run」->「Debug...」(或使用Alt+Shift+F9
快捷键)开始调试Java程序,程序停留在了第5行 此时第五行的代码并没有执行,我们使用单步运行让程序运行到第6行,单步运行有两种:Step Into(快捷捷F7)和Step Over(快捷捷F8)这里和我之前破解外挂用的OD一样,在执行方法调用语句时,Step Into
会跳入方法实现,Step Over
会直接执行完方法 按下Step Over
或F8,可以发现程序停在了第5行,这时查看变量i的值,会看到sum等于11 设置条件断点 在第9行左边断点处单击鼠标右键,弹出断点属性框,设置条件i==56
按一下F9,可以看到i=56 设置临时断点 右键断点,点击More或者按Ctrl+Shift+F8
打开断点设置窗口,选中「Remove Once hit」 (三)练习:实现凯撒密码并进行安全加固,并进行测试(正常情况,异常情况,边界情况)
程序代码如下:
import java.io.*;import java.util.Scanner;public class Caeser { public static void main(String[] args) { System.out.print("请输入密钥:"); Scanner s = new Scanner(System.in); int a = s.nextInt(); C(a); } public static void C(int n) { try { char b[]; BufferedReader br2 = new BufferedReader(new InputStreamReader(System.in)); System.out.println("请输入一段明文:"); String str2 = br2.readLine(); b = str2.toCharArray(); System.out.println("密文为:"); int k = n; for (int i = 0; i < str2.length(); i++) { char ch = (char) ((b[i] - 'a' + k) % 26 + 'a'); System.out.print(ch); } System.out.println("密钥K=" + k); } catch (IOException e) { System.out.println(e.getMessage()); } }}
正常情况
边界情况
实验总结
这一段因为有事情也没有上课,很多东西都还在学习过程中,这篇博客做得不好的地方我会改正,慢慢来吧。