实验二—构造Person类(函数)

同样只需要构造方法,主函数已经被写入程序里面了。首先就是先定义一个person类,然后创建成员变量,使用无参构造方法,传入三个值

class Person{
String name;
String sex;
int age;
Person(){
this.name=null;
this.sex=null;
this.age=0;
}

然后根据题目,提供一个print函数打印信息。

这里的print相当于成员方法,这里需要添加void,因为打印方法不需要返回值

public void print(){
System.out.println(“name:”+name+”; sex:”+sex[……]

继续阅读

实验二—-设计一个矩形类Rectangle (函数题)

因为我们只需要写出类方法,主函数已经被给出。根据题目要求只需要注意一下返回类型,其余的都不是很难

class Rectangle{
double width;
double height;
public Rectangle(double width,double height){
this.width=width;
this.height=height;
}
double getArea() {
return width*height; }

double getPerimeter() {

return 2*(width+height);
}
}

没什么好说的,无参方法的调用要用th[……]

继续阅读

实验一—-7-6 输出所有大于平均值的数

因为我们将输入的n个整数要存入数组a中。意思是要获得输入的n 的整数,那么就要用到scanner input

Scanner input = new Scanner(System.in);
int n = input.nextInt();

随后就要对n进行判断其是否属于1~10,若属于程序继续进行,若不符合有效范围则输出”Invalid.”

主框架搭好之后就是写内部细节了

if (n >= 1 && n <= 10) {
int a[] = new int[n];
int sum = 0;

这里是先对n进行判断范围,确认在范围之后便是定义数组,声[……]

继续阅读

实验一—7-5 用foreach求数组之和

首先要明白foreach的使用方法,

举个例子–

int box[]=[1,2,3,4];

for (int i=0;i<box.length;i++){

system.out.println(box[i]);

}

int box[]=[1,2,3,4];

for(int i:box){

system.out.println(i);

}

foreach不能改变对象值,但是for循环可以。

根据题的要求,首先要获得一个用户输入值作为数组长度。

那么就先写

Scanner input = new Scanne[……]

继续阅读

实验一—-7-4 统计正数和负数的个数然后计算这些数的平均值 

看题目要求,我们输入几个,可以是正数也可以是负数,但是输入0之后就不再获得输入值。输出要求四个—(1)第一行输出正数个数(2)第二行输出负数个(3)第三行输出总和(4)第四行输出平均值

要求很明显,整理一下思路。

首先当然要定义scanner方法,声明并创建

package demo;

import java.util.Scanner;

public class Main {
public static void main(String args[]) {
Scanner input = new Scanner(System.in);

其次要定义三个变量,一[……]

继续阅读

实验一—判断直角三角形

import java.util.Scanner;

//首先的引入import,然后就是搭主函数框架

public class Main {
    public static void main(String[] args) {
     注意看题目要求要求读取三个非零数值,并且因为是要作为三角形三边,那么我们就要使用高精度类型double类型来声明变量,先是scanner获取用户输入值

Scanner&nbs[……]

继续阅读

Funny caeser

NRQ;P<uLliW^(XQ/QT\NDh

我将文件打开后出现符号和大小写的字母首先联系题目凯撒编码,但是出现的符号可以完全排除是凯撒加密那种通过顺移字母加密

详情可以看凯撒密码编译原理https://baike.baidu.com/item/%E6%81%BA%E6%92%92%E5%AF%86%E7%A0%81/4905284

但是我们又注意到前面的NRQ其实若是用固定的nssctf—固定的flag形式来推测其实也算是凯撒,因为凯撒密码有一种变种就是不规则凯撒,也就是第一个第二个第三个字母以及之后的字母偏移不再是相同的位移而是按照一定的规律来偏移。

比如[……]

继续阅读

sign_crypto

打开附件是一个全为数学符号的表格

很明显,我们能够通过这个格式来猜出前六个字母是通过某种编码后由NSSCTF变成的数学符号,其中是“SS”可以由第二个和第三个字母判断出来,两个大括号更是肯定了我的判断。

那么现在问题变得很简单,是通过什么来加密的?

这里需要引入一个符号表,—–LaTex数学符号表

更多的可以通过https://blog.csdn.net/God_68/article/details/81667943来详细对照查看。

对比之后我们可以发现前六个字母果然是nssctf的首字母的缩写,那么接下来就是对照符号表解析了。不再过多赘述。。。。

[……]

继续阅读

misc-(你能拼出flag吗?)

看到flag的要求很简单嘛,只需要将四个部分解密之后放在一起就可以解出来。很明显,ABC的解密方式都不同,其中A只有数字和大写字母那么可以合理猜测是通过base16解密,同理B和C也是一样的猜测解密工具来进行。

第一段解析出来了,同样的方式解析B和C

这里需要注意—-用base32解密初次并没有出现我们要的简短密钥反而出现了等号占空格,那么继续用base32解密出最简式

解密完成得到SXQKY8J

然后是C解密

得到这个EKWVE VTKJV

最后就是D了,最初我走了一个误区,我以为D(百度)就是单纯的密钥,还傻乎乎地把字打上去了,然后一直提交错[……]

继续阅读

Crypto—Vigenere

将题目打开之后是一串乱码,其中有大写和小写字母。我首先考虑的就是用base加密了,但是仔细检查之后发现其中含有下划线(_)和逗号句号,那么几乎就可以排除是base加密了。

我换了个思路,会不会是vigenere就是一种单独的加密方式?

很有意思啊,一下子就出来了

很难受啊。。。。

网上推的第一个解密工具搜出来居然要密钥,这里我卡了很久。

没办法只有换一个解密工具,但是我换了好几个工具之后都是需要密钥的。我了解到可以编程暴力破解密码以无密钥的方式,没办法又回到了题目最开始的地方。

okok,一切重来—

我尝试枚举法,从密码中强行获取密钥,第一[……]

继续阅读

蜀ICP备2022010829号