Java
文章平均质量分 59
AHOPEL
这个作者很懒,什么都没留下…
展开
-
《图解密码学》第八章之消息认证码
《图解密码学》第八章之消息认证码 一、什么是消息认证码 使用消息认证码可以确认自己收到的消息是否是发送者的本意,使用消息认证码可以判断消息是否被篡改,以及是否有人伪装成发送者发送了消息。 消息认证码是一种确认完整性并进行认证的技术。简称为MAC。 消息认证码的输入包括任意长度的消息和一个发送者与接收者之间的共享密钥,他可以传输固定长度的数据,这个数据称为MAC值。 二、单向散列函数与消息认证码的比较 三、消息认证码的使用步骤 可以使用公钥密码来对密钥进行配送。 四、消息认证码的实例 1、SWIFT(环原创 2021-09-11 14:53:51 · 700 阅读 · 0 评论 -
《图解密码学》第六章之混合密码系统
《图解密码学》第六章之混合密码系统 一、对称密码存在的问题 使用对称密码能够保证机密性,但是却存在着密钥不方便配送的问题。 二、公钥密码存在的问题 公钥密码的处理速度远远低于对称密码; 公钥密码难以抵挡中间人的攻击。 三、混合密码系统 混合密码系统是将对称密码和公钥密码的优势相结合的方法。用对称密码对消息进行加密,用公钥密码对秘钥进行加密(由于对称密码的秘钥比消息本身要短很多,因此可以忽略公钥密码速度慢的问题)。 四、混合密码系统的组成机制(对称密码,伪随机数生成器,公钥密码) 用对称密码加密消息 通原创 2021-09-10 17:03:56 · 489 阅读 · 0 评论 -
《图解密码学》第五章之公钥密码
《图解密码学》第五章之公钥密码 一、秘钥配送问题 在之前的对称密码中,解密和加密都用的是同一个密钥,但是对于这个密钥如何安全的告诉接收者,这是一个比较严重的问题。 所上图所示,窃听者能够窃听到密文和密钥,自然就能够获取明文了。 二、解决密钥配送的问题 通过事先共享密钥来解决 缺点:有一定的局限性,如果参与加密通信的人比较多,则密钥数量会比较大。 通过密钥分配中心来解决 缺点:随着人数的增加,密钥中心的负荷会比较大,如果密钥分配中心发生故障,加密通信会失败。 通过Diffie-Hellman密钥原创 2021-09-09 21:26:15 · 949 阅读 · 0 评论 -
《图解密码学》第二章
《图解密码学》第二章 一、历史上的密码 1、凯撒密码 凯撒密码诞生于古罗马,凯撒密码是通过将明文中所使用的字母表按一定的字数平移来进行加密的。 凯撒密码加解密如下所示: 对yoshko进行凯撒密码加密后得到密文为:BRVKLNR 用凯撒密码进行解密: 2、简单替换密码 将明文中所使用的字母表替换为另外一套字母表的密码称为简单替换,凯撒密码也属于其中的一种。 3、Enigma Enigma是一种由键盘、齿轮、电池和灯泡所组成的机器,通过这台机器就能够完成加密和解密。 二、破译密码的方法 1、暴力破解原创 2021-09-08 23:02:42 · 217 阅读 · 0 评论 -
《图解密码学》第四章
《图解密码学》第四章 分组密码 1、前置知识 DES和AES都属于分组密码,但是他们只能加密固定长度的明文,如果需要加密任意长度的明文,就需要对分组密码进行迭代,而分组密码的迭代方法就称为分组密码的模式。 2、分组密码的主要模式 ECB(电子密码本模式)、CBC(密码分组链接模式)、CFB(密文反馈模式)、OFB(输出反馈模式)、CTR(计数器模式) 3、分组密码 分组密码是每次只能处理特定长度的一块数据的一类密码算法。一个分组的比特数称为分组长度。DES、3DES的分组长度都是64比特,这些算法一次只能加原创 2021-09-08 10:33:12 · 283 阅读 · 0 评论 -
《图解密码学》第三章
《图解密码学》第三章 一、从文字密码到比特序列密码 1、前置知识 当今密码都试建立在计算机的基础之上的,计算机的操作对象并不是文字,而是由0和1排列而成的比特序列。无论是文字、图像、声音、视频还是程序,在计算机中都是用比特来进行表示的。 2、编码 将现实世界中的东西映射为比特序列的操作称为编码。例如将midnight进行ASCII编码: 3、XOR(异或) XOR的运算规则如下: 比特序列的XOR运算如下: 从上图可以看出明文A用密钥B进行加密,得到了密文A+B,将密文A+B用B进行异或运算后得到明文原创 2021-09-07 15:59:13 · 697 阅读 · 0 评论 -
自定义类加载器的实现
实现方式:所有用户自定义类加载器都应该继承ClassLoader类 自定义ClassLoader的子类时,通常有两种实现方式: 1)、重写loadClass方法(是实现双亲委派逻辑的地方,修改他会破坏双亲委派机制,不推荐) 2)、重写findClass方法 (推荐) import java.io.*; public class MyClassLoader extends ClassLoader{ private String codePath; public MyClassLoader(ClassLoade原创 2021-03-28 19:43:10 · 194 阅读 · 0 评论 -
Spring
https://blog.csdn.net/weixin_44207403/article/details/106736102?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522159788243419195239714349%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=159788243419195239714349&biz_i转载 2020-08-20 19:58:17 · 145 阅读 · 0 评论 -
mabatis单表查询实例
1.pom文件 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org原创 2020-05-14 15:40:26 · 183 阅读 · 0 评论 -
mybatis配置文件解读
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <!--配置环境--> <environments default="原创 2020-05-11 16:41:07 · 288 阅读 · 1 评论 -
Java------异常
1.概念:异常是运行期间才会出现。 2.处理异常:原创 2019-12-15 16:53:37 · 271 阅读 · 0 评论 -
Java基础————接口(Interface)
1.定义: 1.1.接口不是类。 1.2.接口名一般都写成表示一种功能。在实际的开发中,往往用于表示某些业务逻辑,比如针对用户操作,有添加用户,修改用户,删除用户等,所以都需要定义相应的接口。 1.3.接口中常定义抽象方法,且可以省略public abstract 2.使用: 2.1.接口不是类,不能创建对象。 2.2.需要结合类使用,创建类实现接口,重写抽象方法。 2.3.一个类可以实现多个接...原创 2019-12-14 11:31:35 · 629 阅读 · 0 评论 -
Java基础——多态(polymorphic)
1.定义:多态是同一个行为具有多个不同表现形式或形态的能力,同样的方法在不同的对象上产生不同的效果。 2.多态的三个必要条件: 2.1.继承 2.2.重写 2.3.父类引用指向子类对象(向上转型)。 eg: ...原创 2019-12-06 22:13:44 · 269 阅读 · 0 评论 -
java————变量的生存期(作用域,生存期)
1.分类: 1.1 局部变量(local):只能在定义该属性的代码块中使用(方法或语句中)。 1.2 全局变量(property):在所有非static方法中都可用。 注意:局部变量与全局变量一般不重名。 1.3.静态变量:静态变量只能定义全局变量,静态变量属于类。 注意:static存储在内存中的静态存储区(非堆栈,对象在堆栈中),静态变量可以在普通方法中使用。 2.静态代码块:当类加载时,代码...原创 2019-12-05 21:40:52 · 843 阅读 · 0 评论 -
java基础--------继承--构造方法
继承----针对类,把类当成一个整体. Java中的继承相似于复制. 父类:superclass 超类 子类:subclass 派生类 eg: 父类:Animal 子类:食草Animal ;食肉Animal package cn03.cn; public class Animal { private String name; private String type; public vo...原创 2019-11-30 16:37:32 · 225 阅读 · 0 评论 -
java基础————方法--static
程序执行都是方法的调用,从main方法开始。 //访问修饰符 返回值类型 方法名(参数){ // 方法体 //} 任何修饰符都可以修饰方法。 方法之间可以相互调用。 返回值 类型 void代表无返回值,即将来调用此方法没有结果。 对于需要有结果的,不能用void ,具体返回值看情况(基本数据类型,引用类型),需要使用return关键字。 ...原创 2019-11-30 14:44:33 · 160 阅读 · 0 评论 -
Java基础——封装
属性都用private修饰。 对于需要外部访问类中的属性,提供了set(),get()方法。 boolean 的get方法的方法名叫做isXXX。 eg: package y.cn; /** * 员工类 * @author 22562 * */ public class Employee { //关于员工的信息 // 属性 ——变量 private int emp_...原创 2019-11-30 09:16:37 · 174 阅读 · 0 评论 -
Java基础——四种权限
public:最广泛 ,对所有类可见。 修饰:类,方法,接口,属性。 protected:受保护的。 在同一包内可见,所有子类可见。修饰:属性,方法,不能修饰类。 默认:在同一包内可见。 修饰:类,属性,方法,接口。 private:私有的。同一类中可见。修饰:属性,方法。 其目的是为了安全。 常用的是public ,private。 ...原创 2019-11-30 09:14:27 · 200 阅读 · 0 评论 -
Java基础————面向对象01
Java 是面向对象的语言,万物皆对象。 OOP 思想(管理) C语言: 面向过程 Java: 面向对象 类(class):表征一系列对象的信息,类包含属性(attrubute, property)与方法(method)。 eg: /** * 员工类 * @author 22562 * */ public class Employee { //关于员工的信息 // 属...原创 2019-11-29 20:44:58 · 133 阅读 · 0 评论 -
Java基础之static及代码块分类
static (最经常用于定义工具类) 1:用来定义类的成员变量(类变量), 1:类变量需要被static修饰,实例变量不需要。 2:作用域不同,类变量的作用域更大 3:直接属于类,所有的类成员在内存中只存在一份,存放在常量池中(而实例变量存在多份,存在堆内存中) 4:由于其直属于类,所以可以通过类名直接调用。 2:用来定义类方法 类方法也叫做静态方法,只需要在实例方法上加上static...原创 2019-11-11 20:13:57 · 203 阅读 · 0 评论 -
java基础之实例方法
实例方法的分类: 无参,无返回 有参,无返回 无参,有返回 有参,有返回 有返回值的方法可以直接在main方法中进行输出 public class Method { /** * 无参无返回 */ public void method() { System.out.println("无参无返回的方法"); } /** * 无参有返回的方法,返回1~100随机整数 */...原创 2019-11-10 16:51:42 · 287 阅读 · 0 评论 -
java基础之访问修饰符,方法
在java中万物皆对象。 在认识对象时,先学习什么是类。 类是一群具有相同行为,与相同属性的对象的抽象化。(如:人类,车,猫…)。在每一个类中,都有其属于自己的属性与行为。在Java中我们把属性叫做变量,而把行为叫做方法。 我们通常把变量划分为: 1:成员变量(实例变量):直接声明在类中,而且有初始值,作用域为类中所有实例代码块 2:类变量(静态变量):用关键字static进行修饰。 3:局部变...原创 2019-11-10 16:38:27 · 324 阅读 · 0 评论