CTF&密码学与社会工程
了解密码学和社会工程攻击和网络情报,以及夺旗。
1,135个主题在此版面
-
目录1 Java对象复制1.1 Cglib复制1.2 mapstruct1.2.1 引入依赖1.2.2 需要转换的对象1.2.3 创建转换器1.2.4 原理讲解1.2.5 MapStruct进阶1.3 各个映射工具耗时对比 1 Java对象复制 1.1 Cglib复制 BeanCopier是Cglib包中的一个类,用于对象的复制。 注意:目标对象必须先实例化 而且对象必须要有setter方法 示例: BeanCopier copier = BeanCopier.create(Source.class, Target.class, false); copier.copy(source, target, null); 第三个参数useConverter,是否开启Convert。默认BeanCopier只会做同名,同类型属性的copier,否则就会报错。如果类型需要转换比如Date转换成String则自定义Convert类实现Convert接口 重写convert方法时,里面的三个参数:value 源对象属性,target 目标对象属性类,context 目标对象setter方法名 public class BeanCopyUtilDemo { public static void copy (Object source,Object target){ AccountConverter converter = new AccountConverter(); BeanCopier cop…
-
- 0 篇回复
- 773 次查看
-
-
个人只能申请订阅号 1、首先需要申请一个微信公众号。具体如何申请,请登录微信公众号平台申请即可 2、外网映射工具——ngrok 项目使用spring boot 开发 结合自己项目 引入如下依赖及两个java文件 <!-- 微信开发工具包 --> <!-- https://github.com/binarywang/weixin-java-mp-demo-springboot --> <dependency> <groupId>com.github.binarywang</groupId> <artifactId>weixin-java-mp</artifactId> <version>4.2.0</version> </dependency> <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.0.7</version> </dependency> WeCha…
-
- 0 篇回复
- 767 次查看
-
-
/** * 从 buf 中查找 "\r\n",并返回这段(包括 \r\n)空间的长度。 * 如果 buf 中没有,则返回 0 。 */ private static int findLineEnd(final byte[] buf, int rlen) { int splitbyte = 0; while (splitbyte + 1 < rlen) { if (buf[splitbyte] == '\r' && buf[splitbyte + 1] == '\n' && splitbyte + 1 < rlen) { return splitbyte + 2; } splitbyte++; } return 0; } /** * 半包、粘包问题解决: * 从 InputStream 中找一行数据并返回。「一行」的标志是截止到 \r\n,不包括 \r\n 。 */ private static String readLine(InputStream inputStream) throws IOException, RuntimeException { int splitbyte = 0; int rlen = 0; byte[] buf = new byte[BUFSIZE]; int read = -1; inputStream…
-
- 0 篇回复
- 783 次查看
-
-
-
-
报错解决 Failed to configure a DataSource: 'url' attribute is not specified and no embedd https://changemax.blog.csdn.net/article/details/88191732?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2~default~CTRLIST~Rate-1-88191732-blog-101886962.topnsimilarv1&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2~default~CTRLIST~Rate-1-88191732-blog-101886962.topnsimilarv1&utm_relevant_index=2
-
- 0 篇回复
- 748 次查看
-
-
环境要求 已安装Java的JDK 已安装maven。并配置和建立Maven的本地仓库 已安装IDEA开发工具 本机环境如下: 系统 Windows 10专业版 x64 JDK 1.8.0_191 maven apache-maven-3.5.2 开发工具 Intellij IDEA 2018.2.4 专业版 安装步骤 打开IDEA,新建项目。 2.选择Spring Intializr (当然也可以选择默认Maven,然后添加依赖,这里就不详细介绍),点击【Next】。 3. 接下来,我们填写一些项目源数据的基本信息,完成后点击【Next】。 4. 根据需要选择项目需要配置的依赖项。完成后点击【Next】。 5. 选择项目名称,并点击完成。 可以看到已经生成了默认SpringBoot项目。
-
- 0 篇回复
- 755 次查看
-
-
1. 变量 变量就是可以变化的量 Java是一种强类型语言,每个变量都必须声明类型 Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型,作用域 不建议在一行声明多个同类型变量 注意: 每个变量都有类型,类型可以是基本类型,也可以是引用类型 变量名必须是合法的标识符 变量声明是一条完整的语句,因此每一个声明都必须以分号结束 2.变量作用域 类变量 实例变量 局部变量 在代码中具体说明 public class Demo08{ //类变量:static(全部位置可用) static double salary=2500;//类变量 /*实例变量:从属于对象,如果不进行初始化,则为默认值 整型:0 /浮点型:0.0 /字符型:u0000 /布尔型:false 除了基本类型,其余的默认值为null*/ String name;//实例变量 int age; public static void main(String[]args){//main方法 //局部变量:必须声明和初始化值 int i=10;//局部变量 System.out.printfln(i); //变量类型 变量名 = new Demo08() Demo08 demo08 = new Demo08(); //实例变量在main方法外,想要输出,借助new System.out.printfln(demo…
-
- 0 篇回复
- 756 次查看
-
-
安装前检查卸载openjdk。 1.查看java版本 [root@nothing ~]# java -version openjdk version "1.8.0_171" OpenJDK Runtime Environment (build 1.8.0_171-b10) OpenJDK 64-Bit Server VM (build 25.171-b10, mixed mode) 2.查看java安装软件 [root@nothing ~]# rpm -qa|grep java tzdata-java-2018e-3.el7.noarch java-1.8.0-openjdk-1.8.0.171-8.b10.el7_5.x86_64 java-1.7.0-openjdk-headless-1.7.0.181-2.6.14.8.el7_5.x86_64 java-1.7.0-openjdk-1.7.0.181-2.6.14.8.el7_5.x86_64 javapackages-tools-3.4.1-11.el7.noarch python-javapackages-3.4.1-11.el7.noarch java-1.8.0-openjdk-headless-1.8.0.171-8.b10.el7_5.x86_64 [root@nothing ~]# 3.卸载openjdk [root@nothing ~]# rpm -e --nodeps java-1.8.0-openjdk-headles…
-
- 0 篇回复
- 754 次查看
-
-
IDEA的使用 快捷输入 psvm main方法快捷键 public class helloworld { public static void main(String[] args){ }// main方法 sout System.out.println(); 注释 Java中的注释有三种 单行注释 //单行注释,可注释一行注释 多行注释 /* 多行注释 可注释多行文字 多行注释 */ 文档注释 平常写代码要注意代码规范 标识符 Java所有的组成部分都需要名字。类名、变量名以及方法名都称为标识符。 //所有的标识符都应该以字母(A-Z或a-z),美元符,或者下划线(_)开始 String Ahello = "world"; String ahello = "world"; String $hello = "world"; String _hello = "world"; //String 1hello = "world"; //String #hello = "world";报错 String 王者荣誉 = "倔强青铜"; //可以用中文或拼音命名,但很low。。。 数据类型 强类型语言 强类型指的是 程序 中表达的任何对象所从属的类型都必须能在 编译 时刻确定。 强类型语言要求变量的使用要符合规定,所有变量都必须先定义…
-
- 0 篇回复
- 757 次查看
-
-
HttpServlet 因为HttpServlet已经帮我们实现了很多功能,所以一般我们只需要继承与HttpServlet,然后重写里面的方法就好了 会话 是Web程序中常用的技术,用来跟踪用户的整个会话。常用的会话跟踪技术是Cookie与Session。Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份 cookie 我们知道,web应用程序是用http协议来传输数据的。而http是无状态的协议,什么是无状态?也就是数据一旦交换完毕了,客户端与服务端的连接就会断开,再次通信交换数据需要建立新的连接,这就意味着服务器无法从连接上跟踪会话。 cookie便是为了解决这个问题,客户端访问一次服务器之后,服务器便会传回一个cookie存到客户端(浏览器),当浏览器再请求该网站时,浏览器把请求的网址连同该Cookie一同提交给服务器。服务器检查该Cookie,以此来辨认用户状态。服务器还可以根据需要修改Cookie的内容。 session Session代表服务器与浏览器的一次会话过程,这个过程是连续的,也可以时断时续的。Session是另一种记录客户状态的机制,不同的是Cookie保存在客户端浏览器中,而Session保存在服务器上。客户端浏览器访问服务器的时候,服务器把客户端信息以某种形式记录在服务器上。这就是Session。客户端浏览器再次访问时只需要从该Session中查找该客户的状态就可以了。 Session在用户第一次访问服务器的时候自动创建,并将通过特殊算法…
-
- 0 篇回复
- 755 次查看
-
-
接口 接口就是给出一些没有实现的方法,封装到一起,到某个类要使用的时候,在根据具体情况把这些方法写出来 语法 interface 接口名{ //属性 //方法 } class 类名 implements 接口{ 自己属性; 自己方法; 必须实现的接口的抽象方法 } 在 Jdk7.0 前,接口里的所有方法都没有方法体,即都是抽象方法 Jdk8.0 后接口可以有静态(static)方法,默认(default)方法,也就是说接口中可以有方法的具体实例 细节 接口不能被实例化 接口中所有的方法是 public 方法,接口中抽象方法,可以不用 abstract 修饰 一个普通类实现接口,就必须将该接口的所有方法都实现 抽象类实现接口,可以不用实现接口的方法 一个类同时可以实现多个接口 接口中的属性只能是 final 的,而且是 public static final 修饰。 比如 int a = 1; 实际上是 public static final int a = 1; (必须初始化) 接口中属性的访问形式:接口名.属性名 接口不能继承其他的类,但是可以继承多个别的接口 interface A extends B,C{} 接口的修饰符只能是 public 和默认,这点和类的修饰符是一样的 接口和继承 继承的价值主要在于:解决代码的复用性和可维护性 接口的价值主要在于:设计,设计好各种规范(方法),让其…
-
- 0 篇回复
- 748 次查看
-
-
学习笔记: Maven:项目构建工具,主流 整个项目架构,source,resource,test,testresource 依赖:导入的jar包。 对项目进行打包。 apache基金会 作为一个java程序员,有必要连接一下apache的官网命名规则。 项目.apache.org。 配置环境变量: 和JAVA,JDK基本一样。 新建MAVEN_H0ME:maven的安装路径 编辑PATH:新建一个%MAVEN_HOME%\bin 通过CMD:mvn -v测试配置是否成功 这个环境变量,说实话,用处不是很大,不配也没什么大问题! Maven解压后: conf目录,配置目录,在这个目录下有一个settings.xml,Maven的核心配置文件。 maven会自动给我们下载jar包! 在我们的JavaWEB阶段,所有的jar包都是我们下载好复制粘贴到我们的项目里。我们在使用框架开发的过程中,会导入非常多的jar包,jar包要统一管理,“版本”,这些jar包是怎么下载的,从哪下载的? Mysql驱动从哪里下载? 我给你们的所有的jar包,同时我通过maven下载下来的! 最终我们的项目是要打包放到服务器上的! 这些jar包也得跟着一起放上去。 加入说我们的项目需要100个jar包,都复制粘贴到项目里。1M,100M。 我们现在要做的是把这些jar包放在本地,不往项目里导,通过某种方式连接到这些jar包。 通过一个配置文件,找到这些jar包,最终我们往服务器上部署项目的时候,只需要部署我们的源码,和这个配置文件。 1、这…
-
- 0 篇回复
- 146 次查看
-
-
一.JDK下载 1.1 官方网站:Java Downloads | Oracle或者直接搜索Java se 1.2 点击左上角产品,Java 1.3 下拉,点击立即下载Java 1.4 下拉,选择你所使用的系统(我的是windows)点击下载(installer) 下载需要注册一个Oracle账号,嫌麻烦可以用网盘: 链接:https://pan.baidu.com/s/1_cNkfKHbvmCNPE9_Unkl_A 提取码:6vcc 二.安装 2.1 双击下载好的JDK 2.2 点击下一步 2.3 修改默认目录,点击下一步(推荐大家新建一个好找的;做个预告,配置的时候要用到此路径 2.4 修改默认目录,点击下一步 2.5 关闭 三.配置环境变量 3.1 右击“此电脑”图标,选择属性,选择高级系统设置,选择环境变量 3.2 点击新建 3.3 变量名:JAVA_HOME 变量值:第2.3步的路径 3.4 在系统变量中双击Path 3.5 点击新建,输入 %JAVA_HOME%\bin ;重复,输入 %JAVA_HOME%\jre\bin 四.测试JDK是否安装成功 win键+R键,输入cmd,点击确定 输入java -version
-
- 0 篇回复
- 147 次查看
-
-
快速排序算法——Java 经典代码,数组指针推进一直与第一个元素比较大小,进行移位 不稳定算法 单指针快速排序 public class Main { public static void main(String[] args) { int[] arr = { 10, 3, 5, 4, 2, 11, 5 }; quickSort(arr, 0, arr.length - 1); System.out.println(Arrays.toString(arr)); } //快排,递归调用 public static void quickSort(int[] arr, int p, int r) { if (p < r) { int q = method1(arr, p, r); quickSort(arr, p, q - 1); quickSort(arr, q + 1, r); } } // 单向指针快速排序 private static int method1(int[] arr, int p, int r) { int pivot = arr[p]; int sp = p + 1; int bigger = r; while (sp <= bigger) { if (arr[sp] <= pivot) { sp++; } else { swap(arr, sp, bigger); bigg…
-
- 0 篇回复
- 144 次查看
-
-
Day2 java流程控制 scanner用户交互 和C++的cin>>功能类似,用来用户输入,不过scanner使用前需要先New一个对象 Scanner sc=New Scanner(System.in); String str=sc.next(); //凡是IO流的类如果不关闭,会一直占用资源,养成用完就关的习惯 sc.close(); 用法和C++差别挺大,next不能得到有空格的字符串,而nextline是以回车作为结束符,可以得到有空白的字符串 scanner里面有很多方法,用来输入各种类型的数据,不过scanner还有一种判断方法,就是类似hasnextline(),用来判断是否有输入 顺序结构 从上而下的结果 选择结构 和C++一样用if来完成,判断字符串是否相等,Str.equal()返回一个true或者false。很基础 switch多选择结构 这个在做算法题倒是很少用,倒是以前写C++游戏时有用过,写控制角色行走功能时用的。 switch(表达式){ case 'A': System.out.println(); break;//如果没有break,符合条件后,后面的也会执行语句 case 'B': System.out.println(); default: //指如果结构不符合上述所有后使用的 System.out.println(); continue; } 在7版本后,可以支持…
-
- 0 篇回复
- 210 次查看
-
-
最近,Java 19正式发布。Java仍然是我挚爱的编程语言,但前一段时间有人在帖子中控诉Java的种种“劣迹”(原文链接:https://medium.com/codex/i-finally-gave-up-on-java-5187947bef1b)。 在此,我想对其进行逐一反驳。 Getters and setters 首先,那篇帖子中抱怨了 getter 和 setter。但实际上,在现代 Java 中,getter 和 setter 不是必需的。我们从 Java 14 开始就有记录,在我看来Lombok很好。我们唯一需要 getter/setter 的地方是在一些特定的设置(例如 JPA)中,而且 Lombok 也完美地解决了这个问题。 那篇帖子反复诉说 Java 缺乏语法糖特性。但实际上这是有意为之。如果你对最新的语法细节感兴趣,则可以看一看 Kotlin。Java 的发展“缓慢而稳定”,这是一件好事,也是 Java 长寿的主要原因。 语法糖和运算符重载 现代 Java 包括 switch、var、多行字符串等模式,还有一些即将推出的功能,包括字符串模板。字符串模板的支持还需要一段时间,因为 Java 想要“正确地实现”。API 级别有一些此类的支持(而且已经有一段时间了),但性能不是很好。字符串模板的目标是创建一种语法以支持以下写法: ResultSet rs = DB."SELECT * FROM Person p WHERE p.last_name = {name}";注意,这里的 name 是一个变量,编译器…
-
- 0 篇回复
- 139 次查看
-
-
1.Java介绍 任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的编程语言,应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,太阳计算机系统(Sun公司)放弃了该项计划。随着1990年代互联网的发展,Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。 Java编程语言的风格十分接近C++语言。继承了C++语言面向对象技术的核心,舍弃了容易引起错误的指针,以引用取代;移除了C++中的运算符重载和多重继承特性,用接口取代;增加垃圾回收器功能。在Java SE 1.5版本中引入了泛型编程、类型安全的枚举、不定长参数和自动装/拆箱特性。太阳微系统对Java语言的解释是:“Java编程语言是个简单、面向对象、分布式、解释性、健壮、安全、与系统无关可移植、高性能、多线程和动态的语言” Java不同于一般的编译语言或解释型语言。它首先将源代码编译成字节码,再依赖各种不同平台上的虚拟机来解释执行字节码,从而具有“一次编译,到处运行”的跨平台特性。在早期JVM中,这在一定程度上降低了Java程序的运行效率。但在J2SE1.4.2发布后,Java的运行速度有了大幅提升。 与传统类型不同,Sun公司在推出Java时就将其作为开放的技术。全球的Java开发公司被要求所设计的Java软件必须相互兼容。“Java…
-
- 0 篇回复
- 163 次查看
-
-
Oracle数据库先创建一个表和添加一些数据 1.先在Oracle数据库中创建一个student表: 1 create table student 2 ( 3 id number(11) not null primary key, 4 stu_name varchar(16) not null, 5 gender number(11) default null, 6 age number(11) default null, 7 address varchar(128) default null 8 );1 create table student 2 ( 3 id number(11) not null primary key, 4 stu_name varchar(16) not null, 5 gender number(11) default null, 6 age number(11) default null, 7 address varchar(128) default null 8 ); 2.向表中增添一些数据 insert into student values(1,王小军,1,17,北京市和平里七区30号楼7门102)insert into student values(1,王小军,1,17,北京市和平里七区30号楼7门102) MyEclipse里编写java代码 1.将ojdbc6.jar导入项目中 先创建一个项目,然后在鼠标移到项目…
-
- 0 篇回复
- 138 次查看
-
-
/** * 版权所有 2022 涂聚文有限公司 * 许可信息查看: * 描述: * 适配器模式 Adapter Patterns * 历史版本: JDK 14.02 * 2022-09-12 创建者 geovindu * 2022-09-12 添加 Lambda * 2022-09-12 修改:date * 接口类 * 2022-09-12 修改者:Geovin Du * 生成API帮助文档的指令: *javadoc - -encoding Utf-8 -d apidoc SwingUI.java * * */ package com.javapatterns.adapter; import java.awt.Color; import java.awt.BorderLayout; import java.awt.event.*; import javax.swing.*; /** * * @param * @author geovindu * * */ public class SwingUI extends JFrame implements ActionListener{ JLabel text, clicked,dutext; JButton button, clickButton; JPanel panel; private boolean m_clickMeMode = true; /** * @label Uses …
-
- 0 篇回复
- 139 次查看
-