August 26, 2022

AirDrop主题密码题Wp

一道AirDrop主题密码题wp / 题面 小A鼓起勇气向女神索要电话号码,但女神一定要考考他。女神说她最近刚看了一篇发表于安全顶会USENIX Security 2021的论文,论文发现苹果AirDrop隔空投送功能的漏洞,该漏洞可以向陌生人泄露AirDrop发起者或接收者的电话号码和电子邮箱。小A经过一番努力,获得了女神手机在AirDrop时传输的手机号哈希值,但再往下就不会了,你能继续帮助他吗?小A只记得女神手机号是170号段首批放号的联通号码。Hash:c22a563acc2a587afbfaaaa6d67bc6e628872b00bd7e998873881f7c6fdc62fc / flag格式:flag{13位电话号码(纯数字,含国家代码)}
Read more
May 25, 2022

代码本-数组入门

AcWing 数组的部分 #include<cstdio> int main() { char t; scanf("%c",&t); double q[12][12]; // 初始化后全部读入 for (int i = 0;i < 12; i ++ ) for (int j = 0;j < 12; j ++ ) scanf("%lf",&q[i][j]); double s = 0, c = 0; for (int i = 1; i <= 5; i ++ ) for (int j = 0;j < #(i - 1)#;j ++ ) { s += q[i][j]; c += 1; } for (int i = 6; i <= 10 ;i ++ ) for (int j = 0; j <= #(10 - i)#; j ++ ) { s += q[i][j]; c += 1; } if ( t == 'S') printf ("%.1lf\n",s); else printf("%.1lf\n", s / c ); return 0; }
Read more
May 6, 2022

密码学脚本记录

看题目中由 encode 可以猜到是一种编码方式 来源 / <?php /* convert_uudecode() 函数对 uuencode 编码的字符串进行解码。 该函数常与 convert_uuencode() 函数一起使用。 */ $str = "Hello world!"; // 对字符串进行编码 $encodeString = convert_uuencode($str); echo $encodeString . "<br>"; // 对字符串进行解码(注意转义字符) $decodeString = convert_uudecode($encodeString); echo $decodeString; ?> 去这里运行试试>>>PHP在线运行
Read more
May 5, 2022

N皇后

BV14Y4y1C7SW 以下是错误代码 / #include <bits/stdc++.h> using namespace std; int hash[10][10]; int cnt; void doAdd(int r, int c, int n, int val) { if (r < 0 || r >= n) { return ; } if (c < 0 || c >= n) { return ; } hash[r][c] += val; } void add(int r, int c, int n, int val) { int i; for (i = 0; i < n; i++) { doAdd(r, i, n, val); doAdd(i, c, r, val); } for (i = 0; i < n; i++) { doAdd(r + 1, c + 1, n, val) doAdd(r - 1, c - 1, n, val) doAdd(r + 1, c - 1, n, val) doAdd(r - 1, c + 1, n, val) } } void dfs(int depth, int maxDepth) { int i; if (depth == maxDepth) { ++cnt; return ; } for (i = 0; i < maxDepth; i++) { if (hash[depth][i] == 0) { add(depth, i, maxDepth, i); dfs(depth + 1, maxDepth); add(depth, i, maxDepth, -i) } } } int main() { int n; cin >> n; memset(hash, 0, sizeof(hash)); dfs(0, n); return cnt; } package PACK6; // https://www.bilibili.com/video/BV14Y4y1C7SW public class N皇后 { // 首先定义一个哈希表 hash ij大于0 表示这个位置不能放皇后 static int[][] hash = new int[10][10]; // 定义全局变量cnt 表示方案数 static int cnt; public static void doADD(int r, int c, int n, int val) { // 如果行的范围越越界则标记无效 if (r < 0 || r >= n) { return; } // 如果列的范围越越界则标记无效 if (c < 0 || c >= n) { return; } // 如果对应位置是安全的,也就是没有皇后能够攻击到,则标记为1 // (否则在对应位置的hash数组执行标记) if (hash[r][c] == 0) { hash[r][c] = val; } } // 实现放置皇后的过程 public static void add(int r,int c ,int n,int val) { // val = 1; // 代表(r,c)位置放置了一个皇后 // val = -1; // 代表(r,c)位置取出了一个皇后 int i; for (i = 0; i < n; i++) { // 每放入一个皇后,需要将他所在的行,所在的列,所在的对角线 都进行标记 doADD(r, i, n, val); // 标记所在行 doADD(i, c, n, val); // 标记所在列 } for (i = 1; i <= n; i++) { // 标记主对角线 doADD(r + i, c + i, n, val); doADD(r - i, c - i, n, val); // 标记副对角线 doADD(r + i, c - i, n, val); doADD(r - i, c + i, n, val); } } public static void dfs(int depth, int maxDepth) { // 当前要放置的行号和总共要放置的行数 // 如果当前行数==总行数 方案数+1 函数直接返回 if (depth == maxDepth) { cnt++; return; } // 在当前行的每一列 for (int i = 0; i < maxDepth; i++) { // 如果发现有对应位置是安全的,也就是没有皇后能够攻击到, if (hash[depth][i] == 0) { // 则调用add放置一个皇后 add(depth, i, maxDepth, 1); // 递归求解下一行 dfs(depth + 1, maxDepth); // 递归退出后,删除放置的皇后(取回前面放置的皇后) add(depth, i, maxDepth, -1); } } } public static int fakeMain(int n) { // 初始化cnt = 0; cnt = 0; // 初始化hash ij = 0,表示一开始一个空的棋盘 for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { hash[i][j] = 0; } } // 递归模拟每一行放置皇后后的情况 dfs(0, n); return cnt; } public static void main(String[] args) { fakeMain(4); } } class Solution { int hash[10][10]; int cnt; // 实现标记 void doAdd(int r, int c, int n, int val) { // 如果行的范围越界 则标记失败 if (r < 0 || r >= n) { return; } // 如果列的范围越界 则标记失败 if (c < 0 || c >= n) { return; } // 否则在对应的位置上的hash数组执行标记 hash[r][c] += val; } // 实现放置皇后的过程 void add(int r,int c,int n,int val) { int i; for (i = 0; i < n; i++) { doAdd(r,i,n,val); doAdd(i,c,r,val); } for (i = 0; i < n; i++) { // 标记主对角线 doAdd(r+i,c+i,n,val); doAdd(r-i,c-i,n,val); // 标记副对角线 doAdd(r+i,c-i,n,val); doAdd(r-i,c+i,n,val); } } void dfs(int depth, int maxDepth) { int i; if(depth == maxDepth) { ++cnt; return ; } for (i = 0; i < maxDepth; i++) { if(hash[depth][i] == 0) //对应位置安全,没有皇后能攻击到 { // 则调用add放置一个皇后 add(depth, i, maxDepth , 1); // 递归求解下一行 dfs(depth + 1, maxDepth); // 递归推出后,取出皇后 add(depth, i, maxDepth, -1); } } } public: int totalNQueens(int n) { cnt = 0; memset(hash, 0, sizeof(hash)); dfs(0,n); return cnt; } }
Read more

密码学入门

5.2-5.5密码学习记录 看我回旋踢 synt{} / 凯撒密码加密解密 synt{5pq1004q-86n5-46q8-o720-oro5on0417r1} / 将flag与synt进行对照 / s在26位字母中是第19位,f是第6位,由于这里是解密,需要向前推算,所以偏移量为13 / y是第25位,l为12位,偏移量也是13
Read more
May 2, 2022

转载知乎的科学文章

一学就会,树莓派4B搭建V2Ray图文教程 芝妈小汤圆 / 这是我的第1篇原创技术文章 大家好,我是芝妈,一个90后程序媛妈妈~ / 作为一个自学成才的前端工程师,最近我又对硬件树莓派产生了兴趣。主要是最近小汤圆去上托班了,我全职在家闲得慌,盘算着开始给他启蒙。
Read more
April 27, 2022

重构前(水果店管理系统)

// 水果店管理系统 // 实现水果店的增删改查 // TODO 显示全表 // TODO 修改水果库存 // TODO 修改水果价格 // TODO 添加水果(增) // TODO 退出系统 // TODO 各个欢迎和交互语句 import java.util.Scanner; public class 水果店管理系统 { // 水果店管理系统 // 实现水果店的增删改查 // TODO 显示全表 // TODO 修改水果库存 // TODO 修改水果价格 // TODO 添加水果(增) // TODO 退出系统 // TODO 各个欢迎和交互语句 public static void main(String[] args) { String[][] 表头; // TODO 创建初始水果信息 表头 = new String[][]{ {"水果名称", "水果价格(元/每斤)", "水果库存(斤)"}, {"苹果", "3.5", "10"}, {"香蕉", "2.5", "20"}, {"西瓜", "3.5", "30"}, {"荔枝", "5.5", "40"}, {"梨", "2.5", "50"}, }; // TODO 修改水果信息 (输入后)查找,修改,删除,输出 操作选择的while语句 Scanner cin = new Scanner(System.in); int 操作选择 = 0; while (true) { // TODO 欢迎语句 System.out.println(); // 格式化 System.out.println("请选择操作:"); // 交互 // System.out.print("1.查找" + "\t" + "2.修改" + "\t" + "3.删除" + "\t" + "4.输出" + "\t" + "5.退出" + "\n"); System.out.print("1.查找" + "\t" + "2.增加" + "\t" + "3.修改" + "\t" + "4.删除" + "\t" + "5.输出(此功能优先选择选项7)" + "\t" + "6.退出" + "\t" + "7.只读模式打开表格" + "\n"); 操作选择 = cin.nextInt(); if (操作选择 == 1) { System.out.println("请输入要查找的水果名称:(输入0返回主菜单)"); String 查找水果名称 = cin.next(); if (查找水果名称.equals("0")) { continue; } // TODO 查找水果信息 int for计数器 = 0; for (int i = 0; i < 表头.length; i++) { // 行 if (表头[i][0].equals(查找水果名称)) { // .equals() 方法用于比较两个字符串是否相等。 == 比较的是两个对象的地址 -> https://www.cnblogs.com/Whichzzz/p/15684836.html(==与equals的区别) System.out.println("水果名称:" + 表头[i][0]); System.out.println("水果价格:" + 表头[i][1]); System.out.println("水果库存:" + 表头[i][2]); for计数器++; } } if (for计数器 == 0) { System.out.println("查找失败!没有这个数据"); } } if (操作选择 == 2) { System.out.println("请输入要添加的水果名称:(输入0返回主菜单)"); String 添加水果名称 = cin.next(); if (添加水果名称.equals("0")) { continue; } System.out.println("请输入要添加的水果价格:(输入0返回主菜单)"); String 添加水果价格 = cin.next(); if (添加水果价格.equals("0")) { continue; } System.out.println("请输入要添加的水果库存:(输入0返回主菜单)"); String 添加水果库存 = cin.next(); if (添加水果库存.equals("0")) { continue; } // TODO 添加水果信息(未完成) String[][] 新表头 = new String[表头.length + 1][表头[0].length]; for (int i = 0; i < 表头.length; i++) { for (int j = 0; j < 表头[0].length; j++) { 新表头[i][j] = 表头[i][j]; } } // 遍历输出新表头 for (int i = 0; i < 新表头.length; i++) { for (int j = 0; j < 新表头.length; j++) { System.out.println(新表头[i][j]); } } System.out.println("操作完成"); } if (操作选择 == 3) { System.out.println("请输入要修改的水果名称:(输入0返回主菜单)"); String 修改水果名称 = cin.next(); if (修改水果名称.equals("0")) { continue; } System.out.println("请输入要修改的水果价格:(输入0返回主菜单)"); String 修改水果价格 = cin.next(); if (修改水果价格.equals("0")) { continue; } System.out.println("请输入要修改的水果库存:"); String 修改水果库存 = cin.next(); // TODO 修改水果信息 for (int i = 0; i < 表头.length; i++) { if (表头[i][0].equals(修改水果名称)) { 表头[i][1] = 修改水果价格; 表头[i][2] = 修改水果库存; } } System.out.println("操作完成"); } if (操作选择 == 4) { System.out.println("请输入要删除的水果名称:"); String 删除水果名称 = cin.next(); // TODO 删除水果信息 for (int i = 0; i < 表头.length; i++) { if (表头[i][0].equals(删除水果名称)) { 表头[i][0] = ""; 表头[i][1] = ""; 表头[i][2] = ""; } } } if (操作选择 == 5) { // TODO 输出水果信息 for (int i = 0; i < 表头.length; i++) { System.out.println("水果名称:" + 表头[i][0]); System.out.println("水果价格:" + 表头[i][1]); System.out.println("水果库存:" + 表头[i][2]); } } if (操作选择 == 6) { // TODO 退出系统 break; } if (操作选择 == 7) { // TODO 查看所有水果信息 for (int i = 0; i < 表头.length; i++) { System.out.println("水果名称:" + 表头[i][0]); System.out.println("水果价格:" + 表头[i][1]); System.out.println("水果库存:" + 表头[i][2]); System.out.println("----------------------------------"); } } } } }
Read more
April 27, 2022

重构后(水果店管理系统)

/** * @author L1653 水果店管理 分public. * // TODO 显示全表 * // TODO 修改水果库存 * // TODO 修改水果价格 * // TODO 添加水果(增) * // TODO 退出系统 * // TODO 各个欢迎和交互语句 */ import java.util.Scanner; /** * @author L1653 水果店管理 分public. * // TODO 显示全表 * // TODO 修改水果库存 * // TODO 修改水果价格 * // TODO 添加水果(增) * // TODO 退出系统 * // TODO 各个欢迎和交互语句 */ public class S09E06重构类 { public static void main(String[] args) { String[][] 表头; 表头 = new String[][]{ {"水果", "数量", "单价"}, {"苹果", "10", "5.5"}, {"香蕉", "20", "3.5"}, {"西瓜", "30", "4.5"}, {"葡萄", "40", "6.5"}, {"荔枝", "50", "7.5"}, {"柠檬", "60", "8.5"}, {"梨", "70", "9.5"}, {"桃", "80", "10.5"}, {"柚子", "90", "11.5"}, {"桔子", "100", "12.5"}, }; // TODO 修改水果信息 (输入后)查找,修改,删除,输出 操作选择的while语句 Scanner cin = new Scanner(System.in); while (true) { // TODO 显示全表 显示表格(表头); System.out.println("请选择操作:"); /** System.out.println("1.查找"); System.out.println("2.修改"); System.out.println("3.删除"); System.out.println("4.输出"); System.out.println("5.退出"); */ System.out.println("1.查找" + "\t" + "2.修改"+ "\t" + "3.删除"+ "\t" + "4.输出"+ "\t" + "5.退出"); int 选择 = cin.nextInt(); switch (选择) { case 1: System.out.println("请输入要查找的水果名称:"); String 水果名称 = cin.next(); 查找水果(水果名称, 表头); break; case 2: System.out.println("请输入要修改的水果名称:"); String 水果名称2 = cin.next(); System.out.println("请输入要修改的数量:"); int 数量 = cin.nextInt(); System.out.println("请输入要修改的单价:"); double 单价 = cin.nextDouble(); 修改水果(水果名称2, 数量, 单价, 表头); break; case 3: System.out.println("请输入要删除的水果名称:"); String 水果名称3 = cin.next(); 删除水果(水果名称3, 表头); break; case 4: 输出水果(表头); break; case 5: System.out.println("退出"); return; default: System.out.println("输入错误,请重新输入"); break; } } } // 水果店管理系统 // 实现水果店的增删改查 public static void 查找水果(String 水果名称, String[][] 表头) { /* TODO 查找水果 */ for (int i = 1; i < 表头.length; i++) { if (表头[i][0].equals(水果名称)) { System.out.println("水果名称:" + 表头[i][0]); System.out.println("数量:" + 表头[i][1]); System.out.println("单价:" + 表头[i][2]); } } } public static void 修改水果(String 水果名称, int 数量, double 单价, String[][] 表头) { // TODO 修改水果 for (int i = 1; i < 表头.length; i++) { if (表头[i][0].equals(水果名称)) { 表头[i][1] = String.valueOf(数量); 表头[i][2] = String.valueOf(单价); } } } public static void 删除水果(String 水果名称, String[][] 表头) { // TODO 删除水果 for (int i = 1; i < 表头.length; i++) { if (表头[i][0].equals(水果名称)) { 表头[i][0] = ""; 表头[i][1] = ""; 表头[i][2] = ""; } } } public static void 输出水果(String[][] 表头) { // TODO 输出水果 for (int i = 1; i < 表头.length; i++) { if (!表头[i][0].equals("")) { System.out.println("水果名称:" + 表头[i][0]); System.out.println("数量:" + 表头[i][1]); System.out.println("单价:" + 表头[i][2]); } } } public static void 显示表格(String[][] 表头) { // TODO 显示表格 for (int i = 0; i < 表头.length; i++) { for (int j = 0; j < 表头[i].length; j++) { System.out.print(表头[i][j] + "\t"); // System.out.println(); } System.out.println(); } } }
Read more
April 25, 2022

代码云剪贴板

代码进入查看 / import java.util.Random; import java.util.Scanner; public class Main { static Scanner sc=new Scanner(System.in); public static void main(String[] args) { System.out.println("---欢迎---"); String[]arr=new String[100]; System.out.println("请输入班级人数"); int people= sc.nextInt(); System.out.println("请输入学期课程数"); int course=sc.nextInt(); for (int i=1;i<=course;i++){ System.out.println("请输入第" + i + "门课程"); Scanner sr=new Scanner(System.in); String course1=sr.nextLine(); arr[i]=course1; } System.out.print("学号"); for(int i=0;i<=people;i++){ System.out.print(arr[i]+" "); } System.out.print("总分"+"平均分"); student(people,course); } public static void student(int a,int b){ // int a = people;int b = course; int [][] arr = new int[9][9]; int z=0; int f=0; for (int i=0;i<a;i++){ arr[i][0]=i+1; } for (int i=1;i<a;i++){ for (int j=0;j<b;j++){ Random r=new Random(); int grade= r.nextInt(100)+1; arr[i][j]=grade; } } // TODO 计算行平均分和总分 for (int i=0;i<a;i++){ for (int j=0;j<b;j++){ z=z+arr[i][j]; } f = z/b; //arr[i][b+1]=f; z=0; } // for (int i=0;i<a;i++){ // // 行 // for (int j=1;j<b;j++){ // // 列 // z+=arr[i][j]; // // 总分 // } // f=z/b; // // 平均分 // // arr[i][b+1]=z; // arr[i][b+2]=f; // z=0; // } for (int i=0;i<a;i++){ // 行 for (int j=0;j<b+3;j++){ // 列 System.out.print(" "+arr[i][j]+" "+" \t"); } System.out.println(); } } }
Read more
April 25, 2022

项目概述(已摆烂)

产品描述 / 双目摄像头和深度学习以及物联网加持赋能于’安防产品名字‘,使其根据不同的风险等级去汇报给用户,由程序不间断的检测为用户保证安全 / 用户群体
Read more