自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(81)
  • 收藏
  • 关注

原创 关系型数据库和非关系型数据库

非关系型数据库和关系型数据库是两种不同类型的数据库管理系统,它们用于存储和管理数据,但在数据组织和处理方式上有一些重要的区别。

2023-09-14 20:05:31 568

原创 第八章 常用用类

常用类

2022-09-29 22:54:09 387 1

原创 基于代理类的AOP实现

在Spring中默认使用JDK动态代理实现AOP编程。使用org.springframework.aop.framework.ProxyFactoryBean创建代理是Spring AOP实现的最基本方式。Spring的通知类型根据Spring中通知在目标类方法的连接点位置,可以分为6种如下类型:(1)环绕通知环绕通知(org.aopalliance.intercept.MethodInterceptor)是在目标方法执行前和执行后实施增强,可以应用于日志记录、事务处理等功能。(2)前置通知前置

2021-11-03 21:01:16 276

原创 Spring AOP的动态代理

Spring AOP的动态代理在业务处理代码中,通常都有日志记录、性能统计、安全控制、事务处理、异常处理等操作。尽管使用OOP可以通过封装或继承的方式达到代码的重用,但仍然存在同样的代码分散到各个方法中。因此,采用OOP处理日志记录等操作,不仅增加了开发者的工作量,而且提高了升级维护的困难。为了解决此类问题,AOP思想应运而生。AOP采取横向抽取机制,即将分散在各个方法中的重复代码提取出来,然后在程序编译或运行阶段,再将这些抽取出来的代码应用到需要执行的地方。这种横向抽取机制,采用传统的OOP是无法办到的

2021-11-03 20:10:42 227

原创 Java中的Set类

Set集合不包含重复元素,包括HashSet、TreeSet和LinkedHashSet三种类型。HashSet:快速访问。TreeSet:排序Set。LinedHashSet:记录插入时的顺序。Set接口的特性,Set接口继承了Collection接口,Set集合中不能包含重复的元素,每个元素必须是唯一的,只要将元素加入set中,重复的元素会自动移除。...

2021-11-03 19:56:56 310

原创 并发并行、串行并行、串口并口的区别

并发:Concurrency,以可独立执行的进程集合的方式编程。并行:Parallelism,以可同时执行的计算机指令方式编程。并发并行并发,是在同一个cpu上同时(不是真正的同时,而是看来是同时,因为cpu要在多个程序间切换)运行多个程序。并发编程的目标是充分的利用处理器的每一个核,以达到最高的处理性能。并行,是每个cpu运行一个程序。并发,就像一个人(cpu)做两件事(程序),轮换着每件事做一点,表面上两件事都在做。并行,就是2个人做2件事,两件事也同时在做。串行通信和并行通信这里的.

2021-11-03 19:52:46 821

原创 什么是非线程安全

非线程安全:在运行中不提供数据访问保护,这就可能导致多个线程先后更改数据,最后所得的数据是脏数据。线程安全:多线程访问时,采用了加锁机制,当一个线程访问该类的某个数据时,进行保护,其他线程不能进行访问直到该线程读取完,其他线程才可使用。不会出现数据不一致或者数据污染。HashMap是线程不安全的。...

2021-11-03 19:28:39 953

原创 javaee常用代码

web.xml<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version=

2021-10-28 20:05:49 235

原创 Bean的作用域、生命周期、注解

Bean的作用域singleton作用域当将bean的scope设置为singleton时,Spring IoC容器仅生成和管理一个Bean实例(单例)。使用id或name获取Bean实例时,IoC容器将返回共享的Bean实例。由于singleton是scope(范围)的默认方式,因此有两种方式将bean的scope设置为singleton。配置文件示例代码如下:<bean id="constructorInstance" class="instance.BeanClass"/>或

2021-10-28 19:40:47 386

原创 Bean的实例化

Spring框架实例化Bean有三种方式:构造方法实例化、静态工厂实例化和实例工厂实例化(其中,最常用的实例方法是构造方法实例化)。构造方法实例化在Spring框架中,Spring容器可以调用Bean对应类中无参数构造方法来实例化Bean,这种方式称为构造方法实例化。静态工厂实例化使用静态工厂实例化Bean时,要求开发者在工厂类中创建一个静态方法来创建Bean的实例。配置Bean时,class属性指定静态工厂类,同时还需要使用factory-method属性指定工厂类中的静态方法。实例工厂实例化

2021-10-26 22:32:22 101

原创 IOC(Inversion of Control控制反转)DI(Dependency Injection,依赖注入)

控制反转(Inversion of Control),是Spring框架的核心,用来消减计算机程序的耦合问题。依赖注入(Dependency Injection)是IOC的另一种说法,从不同的角度,描述相同的概念。从Spring容器的角度来看,Spring容器负责将被依赖对象赋值给调用者的成员变量,相当于为调用者注入它所依赖的实例,这就是Spring的依赖注入。控制反转是一种通过描述(在Spring中可以是XML或注解)并通过第三方去产生或获取特定对象的方式(用new创建对象实例不利于低耦合)。在S

2021-10-26 21:40:54 163

原创 final关键字

final关键字的作用是:1、用来修饰一个引用。2、用来修饰一个方法,该方法将成为最终方法,无法被子类重写,但仍然可以被继承。3、用来修饰类,该类将成为最终类,无法被继承;当我们需要让一个类永远不被继承,此时就可以用final修饰。...

2021-10-26 19:30:25 74

原创 ArrayList和LinkedList的区别

它们一个是Array(动态数组)的数据结构,一个是Link(链表)的数据结构,此外,它们两个都是对List接口的实现。前者是数组队列,相当于动态数组;后者为双向链表结构,也可当作堆栈、队列、双端队列 。...

2021-10-25 20:44:46 74

原创 static{}是什么意思

static{}中的代码表示是在类装载的时候执行一次,且仅执行一次【静态初始化块的作用就是:提升程序性能。】static关键字:方便在没有创建对象的情况下进行调用(方法/变量)。在类中,用static声明的成员变量为静态成员变量,也成为类变量。类变量的生命周期和类相同,在整个应用程序执行期间都有效。static修饰的成员变量和方法,从属于类普通变量和方法从属于对象静态方法不能调用非静态成员,编译会报错被static关键字修饰的方法或者变量不需要依赖于对象来进行访问,只要类被加载了,就可以通

2021-10-25 20:42:29 1982

原创 重载和重写的区别

重载:Overload重写:Override方法的重载和重写都是实现多态的方式,区别在于前者实现的是编译时的多态性,而后者实现的是运行时的多态性。重载发生在一个类中,同名的方法如果有不同的参数列表(参数类型不同、参数个数不同或者二者都不同)则视为重载;重写发生在子类与父类之间,重写要求子类被重写方法与父类被重写方法有相同的参数列表,有兼容的返回类型,比父类被重写方法更好访问,不能比父类被重写方法声明更多的异常(里氏代换原则)。重载对返回类型没有特殊的要求,不能根据返回类型进行区分。...

2021-10-25 19:11:06 94

原创 jar包、JavaBean、EJB、POJO、DAO

jar: Java Archive File,Java存档文件。是一种与平台无关的文件格式,可将多个文件合成一个文件。jar 包与 zip 包非常相似——准确地说,它就是 zip 包,所以叫它文件包。jar 与 zip 唯一的区别就是在 jar 文件的内容中,包含了一个 META-INF/MANIFEST.MF 文件,该文件是在生成 jar 文件的时候自动创建的,作为jar里面的"详情单",包含了该Jar包的版本、创建人和类搜索路径Class-Path等信息,当然如果是可执行Jar包,会包含Main-..

2021-10-24 22:09:51 4371

原创 接口与抽象类的区别

接口与抽象类:对应`interface`与`abstract`关键字。抽象类:被abstract关键字修饰的类。在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。被abstract关键字修饰的方法称为抽象方法,抽象方法只有方法的声明,没有方法体。抽象类不能被实例化只能被继承;包含抽象方法的一定是抽象类,但是抽象类不一定含有抽象方法;抽象类中的抽象方法的修饰符只能为pub..

2021-10-24 20:08:39 102

原创 .dll动态链接库

.dll,动态链接库。英文为Dynamic Link Library。DLL是一个包含可由多个程序,同时使用的代码和数据的库。优点:可以更为容易地将更新应用于各个模块,而不会影响该程序的其他部分。 使用较少的资源,当多个程序使用同一个函数库时,DLL 可以减少在磁盘和物理内存中加载的代码的重复量。...

2021-10-24 19:03:57 58

原创 类的实例化

人是一个“类”,实例化这个类==>“赵四”“钱三”。

2021-10-24 19:00:29 64

原创 【Proverif语法(七)】

解决中间人攻击(* Symmetric key encryption *)type key.fun senc(bitstring, key): bitstring.reduc forall m: bitstring, k: key; sdec(senc(m,k),k) = m.(* Asymmetric key encryption *)type skey.type pkey.fun pk(skey): pkey.fun aenc(bitstring, pkey): bitstr

2021-07-23 17:08:19 1120 1

原创 【Proverif语法(六)】

Proverif的输出结果Attack Derivation:解释攻击者为了破坏性质必须采取的行动。Attack Trace:能够在输入文件所给出的进程中执行的trace。输出的三种结果:true:结果被证实了,攻击没有发生,不会输出[Attack derivation]和 [Attack trace]。false:性质被证伪了,输出[Attack derivation]和 [Attack trace],主要关注 [Attack trace]。cannot be proved:性质证

2021-07-21 20:42:33 587

原创 【Proverif语法(五)】

握手协议的保密性和认证性event acceptsClient(key):客户端接受了【使用收到的key和服务器交互】这件事。 eventacceptsServer(key,pkey):服务器接受了【使用key和公钥为pkey的客户端交互】这件事。 eventtermClient(key,pkey):客户端认为已经完成了【使用key为会话密钥以及pkey作为客户端公钥,和服务器运行协议】这件事。event termServer(key):服务器认为已经完成了【使用key作为会话密钥,和客户端运行协

2021-07-20 16:39:39 741

原创 【Proverif语法(四)】

进程宏进程宏(Process Macros)用来定义子进程,因为在用ProVerif对协议进行建模时,直接一个大的主进程比较混乱,进程宏的形式为:let R(x1​:t1​,...,xn​:tn​)=P.其中 R 是宏的名字, P是子进程, x 1 , . . . , x n x_1,…,x_n x1​,…,xn​是 P 里面的free变量,当使用这个宏时(原文叫macro expansion)就把使用时的参数传进去了。例子(*process macrocs*)free c:channe

2021-07-15 22:25:42 553

原创 【Proverif语法(三)】

ProVerif验证的加密协议并发程序通过公共通道来进行信息较交互,最终实现一些目标。认为攻击者对这样的通道有完全的控制能力,包括阅读、修改、删除和注入消息,也可以解密自己持有密钥的消息(视解密为获取密文的唯一途径,不考虑攻击者用其它方式获取密文,所以如果自己没有解密的密钥就不行)。...

2021-07-14 21:04:14 524

原创 【Proverif语法(二)】

命令行执行proverif xxx.pv例子(* test.pv:可达性学习*)free c:channel.free Id:bitstring [private].free Pa:bitstring [private].query attacker(Id).query attacker(Pa).process out(c,Id). 0

2021-07-13 21:13:01 786 3

原创 【Proverif语法学习(一)】

1.声明(declaration)1.1 声明变量格式:type t.free n:t. 表示n的类型是t,free是关键词,表示公开的,是可以被攻击者获取的。如果不想被攻击者获取,则需要声明为私密的,关键词为private,格式如下:free n:t [private].1.2 声明函数格式:fun f(t1,…,tn):t.f是关于n的函数构造器,t是该函数f的返回值类型,t1…tn是函数f的自变量。fun f(t1,…,tn):t [private]. 表示攻击者无法获取由函

2021-07-13 20:26:50 1221 1

原创 【析构函数】

析构函数(destructor)和构造函数相反,当对象结束其生命周期,比如对象所在的函数已经调用完毕时,系统自行执行析构函数。析构函数往往用来做“清理善后”的工作(例如在建立对象时用new开辟了一片内存空间,delete会自动调用析构函数后释放内存)。以C++语言为例:析构函数名也应与类名相同,只是在函数名前面加一个位取反符 ~ ,例如~stud( ),以区别于构造函数。它不能带任何参数,也没有返回值(包括void类型)。只能有一个析构函数,不能重载。如果用户没有编写析构函数,编译系统会自动生成一个.

2021-06-30 22:45:07 76

原创 【可证明安全】公钥方案的可证明安全(一)

Provable Security for Public-Key SchemesCryptographyProvable SecurityCryptographysecrecy of communicationspractical secrecyShannon provides a definition of secrecyPerfect Secrecy:The ciphertext does not reveal any(additional) information about the pl

2021-04-09 20:27:01 359

原创 密码编码学与网络安全笔记(第7版)

密码编码学与网络安全笔记(第7版)第一部分 概览第1章 计算机与网络安全概念第2章 数论基础第一部分 概览你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。第1章 计算机与网络安全概念描述保密性、完整性和可用性的关键安全需求描述OSI的X.800安全架构讨论安全威胁和攻击的类型,举例说明作用于不同计算机和网络的安全威胁与攻击解释安全设计的基本准则列出和简要描述与密码标

2021-03-05 17:00:20 1627

原创 有序表归并【C语言】

#include <stdio.h>#include <stdlib.h>//有序表归并struct node{ int data[205]; int length;}La,Lb,Lc;int main() { int m,n,i,j; while (scanf("%d",&m)!=EOF){ //输入La的长度 for (i = 0; i <m ; i++) { sca

2020-12-21 21:05:02 239

原创 算法的时间复杂度O(logn)

算法中log级别的时间复杂度是由于使用了分治思想,这里的底数直接由分治的复杂度决定。例如采用二分法,log就以2为底数。三分法就以三为底数。

2020-12-20 19:51:31 655

原创 几种排序算法的代码表示

几种排序算法的代码表示选择排序、二分查找法、斐波那契数列、矩阵加法、迭代求和、递归求和#include <iostream>using namespace std;void selectSort(int *a,int n){ //选择排序 int min,temp; for(int i=0;i<n-1;i++){ min=i; for(int j=i+1;j<n;j++){ if(a[j]&l

2020-12-20 19:06:38 102

原创 sizeof()和lstrlen()和strlen()区别

strlen()是返回字符串的字节长度,lstrlen()是返回字符串的字符长度。也就是说第二个函数可能和第一个函数结果一样,如果字符串中字符单位都是单字节的话。一般来说主要区别在于ascii的字符,还是unicode或者是utf的区别。ASCII编码是一个字符占一个字节,Unicode是一个字符占两个字节.求这两种字符串的长度,要用两个函数分别来.lstrlen(),strlen()用...

2020-10-12 11:30:02 339

原创 【C语言经典小程序(二)】

1.三个数从小到大输出#include <stdio.h>void main(){ int a,b,c,t; printf("enter 3 int nums:\n"); scanf("%d%d%d",&a,&b,&c); if (a>b) { t=a; a=b; b=t;...

2020-10-12 11:26:43 517

原创 Node.js REPL(交互式解释器)

文章目录Node.js REPL(交互式解释器)dasNode.js REPL(交互式解释器)das Node.js REPL(Read Eval Print Loop:交互式解释器) 表示一个电脑的环境,类似 Window 系统的终端或Unix/Linux shell,我们可以在终端中输入命令,并接收系统的响应。 Node 自带了交互式解释器,可以执行以下任务:读取 -读取用户输入,解析输入了Javascript 数据结构并存储在内存中。执行 - 执行输入的数据结构打印 - 输出结果循环 -

2020-10-03 20:28:42 149

原创 node.js创建应用+nmp使用介绍

使用 Node.js 时,我们不仅仅在实现一个应用,同时还实现了整个 HTTP 服务器。事实上,我们的 Web 应用以及对应的 Web 服务器基本上是一样的。先了解下 Node.js 应用是由哪几部分组成的:1.引入 required 模块:我们可以使用 require 指令来载入 Node.js 模块。2.创建服务器:服务器可以监听客户端的请求,类似于 Apache 、Nginx 等 HTTP 服务器。3.接收请求与响应请求服务器很容易创建,客户端可以使用浏览器或终端发送 HTTP 请求,服.

2020-10-03 20:06:08 554

原创 代理重加密【proxy re-encryption】

A向KGC请求生成自己的公私钥对,KGC生成A的公私钥对并返回给AB向KGC请求生成自己的公私钥对,KGC生成B的公私钥对并返回给BA用AES加密明文M生成密文C1,发到服务器上A用自己的公钥加密AES的密钥K生成密文C2,发到服务器上A向KGC请求B的公钥,KGC把B的公钥返回给AA用B的公钥和自己的私钥生成重加密密钥KA->B,把生成的重加密密钥上传到服务器上重加密算法ReEnc(params,CTi,rki->j):给定针对公钥pki和第二层密文CTi,该算法利用...

2020-09-24 20:04:34 650

原创 同步和异步

同步:同步的思想是:所有的操作都做完,才返回给用户。这样用户在线等待的时间太长,给用户一种卡死了的感觉(就是系统迁移中,点击了迁移,界面就不动了,但是程序还在执行,卡死了的感觉)。这种情况下,用户不能关闭界面,如果关闭了,即迁移程序就中断了。异步:将用户请求放入消息队列,并反馈给用户,系统迁移程序已经启动,你可以关闭浏览器了。然后程序再慢慢地去写入数据库去。这就是异步。但是用户没有卡死的感觉,会告诉你,你的请求系统已经响应了。你可以关闭界面了。同步和异步本身是相对的同步就相当于是 当客户端发送请.

2020-09-18 12:09:47 184

原创 同步通信和异步通信

1.双方要建立同步,双方的时钟要调整到同一个频率。收发双方不停的发送和接受连续的同步比特流;异步通信不要求双方时钟同步,发送方发送一个字节后,可以经过任意时间间隔发送,接受端要时刻做好接收的准备。 2.同步通信效率高,异步通信效率低。 3.同步通信对设备要求比较高,但是异步设备简单。 4.同步通信可以用于点对多点,异步通信只能点对点。...

2020-09-18 12:08:32 590

原创 【6】分组密码 block cipher

文章目录分组密码概述分组密码的设计原则分组密码概述分组密码(block cipher)的数学模型是将明文消息编码表示后的数字(简称明文数字)序列,划分成长度为n的组(可看成长度为n的矢量),每组分别在密钥的控制下变换成等长的输出数字(简称密文数字)序列。分组密码(block cipher)是许多系统安全的一个重要组成部分。可用于构造: • 伪随机数生成器(Pseudo random number generator)• 流密码(Stream cipher)• 消息认证码(MAC)和杂凑

2020-08-21 19:38:18 1616

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除