网络安全复习

news2024/11/26 18:54:09

目录

低层协议安全性

IP协议

ARP协议

TCP协议

NAT协议

单钥加密体制

DES算法

课后习题

双钥加密体制

🐇怎么说

欧几里得算法求逆

RSA算法

椭圆曲线加密

Diffie- Hellman 密钥交换算法

ElGamal签名机制

Schnorr签名机制

DSS签名算法——DSA

低层协议安全性

IP协议

对于网络层,IP协议是其中一个非常重要的协议。网络层的IP地址相当于数据链路层的Mac地址。协议字段如下,每行4字节,总共4*5=20字节。

IP协议安全性:IP协议不能保证数据就是从数据包中给定的源地址发出的,你绝对不能靠对源地址的有效性检验来判断数据包的好坏。

ARP协议

接上文,Mac地址是电脑出场自带并不可更改的;而网络环境改变了IP地址也会改变,因此需要寻找设备的IP地址。假设主机A和B在同一个网段:

A的ARP缓存表中如果有B的表项,则对IP数据包进行帧封装,单播发送给B的Mac地址。

如果没有,则如下图形式进行广播,并将得到的信息存入ARP缓存表以便下次使用。所以ARP协议中文为地址解析协议。

当ARP在不同的局域网中进行运行的时候:

  1. 主机A先把自己的IP地址与目的主机的IP地址相与,发现不在同一个子网中。

  2. 主机A便运行ARP缓存表获取默认网关的MAC地址,与默认网关进行数据帧的传送。

  3. 当运行到路由器时,路由器查询转发表,看是否转发表中有目的IP 地址,如果有的话便可以进行直接交付;没有则运行ARP协议获取下一跳路由器接口的Mac地址。

  4. 路由器接到分组后,查询转发表,将分组进行转发。

ARP协议的安全问题:一台不可信赖的主机会发出假冒的ARP查询或应答信息,并将所有流向它的数据流转移。这样,它就可以伪装成某台机器,或修改数据流。这种攻击叫做ARP欺骗攻击。

TCP协议

TCP消息格式:<localhost, localport, remotehost, remoteport>

TCP连接的建立需要3次握手,当服务器收到初始的SYN数据包后,该连接处于半开放状态。此后,服务器返回自己的序号,并等待确认。最后,客户机发送第3个数据包使TCP连接开放,在客户机和服务器之间建立连接。

但处于半开放状态会消耗服务器的大量资源,所以诞生了泛洪攻击,即通过模拟IP或僵尸网络的方式大量发出第一次握手,而不回复第三次握手,大量占用服务资源。

泛洪攻击的防治有如下两种方法:

方法1(SYN Defender):防火墙收到客户端的SYN包时,直接转发给服务器;防火墙收到服务器的SYN/ACK包后,一方面将SYN/ACK包转发给客户端,另一方面以客户端的名义给服务器回送一个ACK包,完成TCP的三次握手,让服务器端由半连接状态进入连接状态。当客户端真正的ACK包到达时,有数据则转发给服务器,否则丢弃该包。由于服务器能承受连接状态要比半连接状态高得多,所以这种方法能有效地减轻对服务器的攻击。

方法2(SYN proxy):防火墙在收到客户端的SYN包后,并不向服务器转发而是记录该状态信息然后主动给客户端回送SYN/ACK包,如果收到客户端的ACK包,表明是正常访问,由防火墙向服务器发送SYN包并完成三次握手。这样由防火墙做为代理来实现客户端和服务器端的连接,可以完全过滤不可用连接发往服务器。

 

NAT协议

NAT协议的诞生主要为了解决IPV4中IP地址不足的问题。NAT协议中文全称为网络地址转换,即将一大批主机由NAT路由器都封装在一个局域网内,并赋予一个内网IP和外网IP。内网通信随意,IP地址足够;当访问外网时步骤如下(内部主机(192.168.10.1)要向外部主机(地址为210.10.20.20)发送一个数据包):

  1. 向NAT路由器发送数据包,源地址为192.168.10.1,目的地址为210.10.20.20

  2. NAT路由器在转换表中增添一个条目,内部地址192.168.10.1,外部地址210.10.20.20

  3. NAT路由器用自己的地址(即201.26.7.9)替换数据包中的源地址,并利用路由机制,将此数据包发送给Internet上的目标主机。此时源地址就变为了201.26.7.9

  4. 目的地址收到信息并返回响应数据包,响应数据包的源地址为210.10.20.20,而目的地址为201.26.7.9

  5. 该响应数据包到达NAT路由器。因为响应数据包中的目的地址与NAT路由器的地址匹配,所以NAT路由器查询转换表,以确认此转换表中是否含有外部地址为210.10.20.20的条目。于是就找到了内部主机192.168.10.1

  6. NAT路由器用内部主机地址(即192.168.10.1)替换数据包的目的地址,并将该分组发给该内部主机。

然而,如果有多个内网主机希望与外网的同一台主机通信怎么办?

那么需要修改NAT转换表,新加几列新的参数。

内部端口外部端口NAT端口
标识内部主机应用程序所使用的端口号标识某一应用程序所使用的端口号一个依次递减的数字,由NAT路由器生成

NAT协议的安全问题:NAT最严重的问题是它不能与加密协调工作。第一,NAT不能对加密的数据流进行检查;第二,IPsec与NAT会产生冲突。

单钥加密体制

DES算法

DES属于对称密码算法中的分组加密(块加密),和流密码相对应。DES算法将明文分为若干个64位块(不足补充),秘钥为56位(8位校验位)。DES算法流程图如下

 接下来,进行DES算法关键步骤的逐步解析:

IP置换

IP置换和IP逆置换,还有后面提到的P置换逻辑都是一样的。例如下图IP置换矩阵的第一行第一列为58,含义即为将第58个元素位置换为第一个。置换完后密文长度不变,仍为64位。

E扩展

64位字段可以分为前32位和后32位,前32位不变,后32位进行E扩展置48位,具体扩展方法如下:

例如图中原本的32位字段为,将32位字段分为8组,每组前后各加两个比特,组成新的 6 × 8 = 48 位字段。新加的两位分别是前一组字段的最后一位和后一组字段的第一位,见下所示。

1101 0001 0011 0100 原文本

011010 100010 100110 101001 E扩展文本

S盒压缩

S盒是精心设计的8个矩阵,是DES算法中混淆的关键部分,他的质量(随机性)很大程度影响DES的加密效果。

之后,我们要再将E扩展后的48位后半字段,通过S盒压缩为32位,具体压缩方法如下:

先将48位分为8组,每组6位。6位取出前两位和中间四位,拼成2进制数,再将2进制转化为十进制,即经过一系列操作,将6位数变为2个十进制数。将这两个十进制数当作横纵坐标,寻找S盒中对应的十进制数,再将这个十进制数用4位2进制表示。至此,我们将48位文本压缩为了32位。

(3,15)在S盒中对应的元素为13(查表得),之后转换为二进制1011,所以通过S盒我们将111111压缩为了1011。

P盒置换

P盒压缩和IP置换思路大致相似,例如第一行第一列元素为16,即将第16位置换到第一位,剩余以此类推。

秘钥生成

秘钥生成思路流程图如下:

如图中的流程,首先需要进行一次PC-1的选择置换,即去掉密钥中的校验位(8,16,...,64)。去掉8位校验位还剩下56位密钥,将56位分为C_0 (前28位)和D_0 (后28位) ,根据下表进行密钥的循环左移(如图中密钥表的计算逻辑)。得到的C_i D_i 进行合并后,再进行一次PC-2的选择置换,将密钥流变为48位。

Feistel结构及证明

如图可见,只要密钥倒置就可以解密密文。数学证明如下:

加密过程是:明文m = LE_0||RE_0,进行n轮迭代。

按下列规则计算LE_n||RE_n,1≤i≤n,轮函数为F

LE_i = RE_{i-1}

RE_i = LE_{i-1}\bigoplus F(RE_{i-1},K_i)

进行n轮迭代运算后,得LE_n和RE_n,输出密文c = RE_n||LE_n

解密过程与加密过程采用相同的算法:密文分组c = RE_n||LE_n = LD_0||RD_0

按下述规则计算LD_n||RD_n,1≤i≤n,轮函数为F

LD_i = RD_{i-1}

RD_i = LD_{i-1}\bigoplus F(RD_{i-1},K_{n-i+1})

进行n轮迭代运算后,得LD_n||RD_n,输出明文m = RD_n||LD_n

下面即需要证明 m = LE_0||RE_0= RD_n||LD_n,显然:

LD_i = RD_{i-1} = LE_{n+1-i} = RE_{n-i}

RD_i=LD_{i-1} \bigoplus F(RD_{i-1},K_{n+1-i}) = RE_{n+1-i}\bigoplus F(LE_{n+1-i},K_{n+1-i}) = LE_{n-i}

当i=0可得LE_0||RE_0= RD_n||LD_n,所以Feistel结构是可逆的。

课后习题

根据对明文处理方式的不同,对称加密可以分为哪两种?

流密码和分组密码。

DES算法中IP置换的作用?

IP置换其作用是通过将明文的每个比特位移到不同的位置上,实现对明文的置换和重排。这 个过程实际上是扩散,让明文中的每一位影响密文中的许多位

DES算法中16轮迭代运算的作用?

增强密码算法的安全性,由于DES算法的密钥长度较短,因此进行多轮迭代能够增强算法的复杂度和安全性,使其更难被攻击者破解;实现分组加密:DES算法采用了分组加密的方式,将 明文数据分成左右两个部分并进行迭代加密,这种方式既方便了数据的处理,又增强了算法的安全性。

本质上讲,数据的保密性是密钥的保密性还是算法的保密性?

当然是密钥的保密性!

双钥加密体制

🐇怎么说

没找着公钥加密在哪,所以🐇就接着写了。

公钥加密,也叫非对称(密钥)加密,属于通信科技下的网络安全二级学科,指的是由对应的一对唯一性密钥(即公开密钥和私有密钥)组成的加密方法。它解决了密钥的发布和管理问题,是商业密码的核心。在公钥加密体制中,没有公开的是私钥,公开的是公钥。

下面,三只🐇和一只🐼将为您展示公钥加密过程。如下图所示。

非对称加、解密过程: 

  1. 消息接收方准备好公钥和私钥

  2. 私钥接收方自己留存、公钥发布给消息发送方

  3. 消息发送方使用接收方公钥对消息进行加密

  4. 消息接收方用自己的私钥对消息解密

欧几里得算法求逆

算数

例题,求17在模26下的逆元。17x \equiv 1 \mod 26

26 \equiv 1 \times 17+9,17 \equiv 9+8,9=8 \times 1+1

1 \equiv 9-8 \equiv 2\times9-17 \equiv 2\times 26 -3 \times 17

\therefore 17^{-1} \mod 26 \equiv -3 \equiv 23 \mod 26

算式

x^2 在 \mod x^8+x^4+x^3+x+1 下的逆元

首先需要证明 x^2\mod x^8+x^4+x^3+x+1 的最大公约数为1,否则不存在这个逆元。

x^8+x^4+x^3+x+1 = (x^6+x^2+x)x^2+x+1

x^2=x(x+1)-x

x+1 = (-1)(-x)+1

倒推下来:

1 = (x+1)-x

-x = x^2-x(x+1),\therefore 1=(1-x)(1+x)+x^2

(1+x)=x^8+x^4+x^3+x+1-(x^6+x^2+x)x^2

\therefore 1=(1-x)[x^8+x^4+x^3+x+1-(x^6+x^2+x)x^2]+x^2

= (1-x)(x^8+x^4+x^3+x+1)+(x^7-x^6+x^3-x+1)x^2

\therefore x^2在 \mod x^8+x^4+x^3+x+1 下的逆元为(x^7-x^6+x^3-x+1)

RSA算法

加解密过程

  1. 选择一对不相等的大质数,记作p、q

  2. 计算N = p \times q

  3. 计算\phi(N) = (p-1)\times(q-1)

  4. 选择一个与\phi(N)互质的整数e

  5. 计算出e对于φ(N)的模反元素d

  6. 公钥 KU = (e,N) ,私钥KR = (d,N) 注意这括号不是最大公约数,而是表达形式,具体见例题!

如果两个正整数e和φ(n)互质,那么⼀定可以找到⼀个整数d,使得ed-1被φ(n)整除,或者说ed除以φ(n)所得余数为1。 此时,d就叫做e的模反元素。

加密 M^e \mod N \equiv C

解密 C^d \mod N \equiv M

例题

  1. 取p=3、q=11;

  2. N=p \times q = 33

  3. \phi(N) = (p-1)(q-1) = 20

  4. 选择一个与\phi(N)互素的数,我们选择e=3

  5. 找到一个d使得ed \equiv 1 \mod \phi(N),解得d \equiv 7 \mod 20

  6. 公钥KU = (e,n) = (3,33) ,私钥KR = (d,n) = (7,33)

假如明文M=20,加密即为 20^3 \mod 33 = 14,解密即为14^7 \mod 33 = 20

椭圆曲线加密

推导出生成秘钥k和加法公式,已知y^2 = x^3+ax+b \mod P

注意,公式中不论P、Q两点是不是横坐标相同,只区分两点是否重合。

例题_基础

利用椭圆曲线实现ElGamal密码体制,设椭圆曲线是E_{11}(1,6),生成元 G=(2,7)

(5,2)+(2,7)

已知椭圆曲线方程为y^2 = x^3+x+6 \mod 11

k\equiv\frac{7-2}{2-5}\mod 11\equiv5\times(-3)^{-1}\equiv5\times7 \mod 11 \equiv 2 \mod 11

x_3 \equiv k^2-x_1-x_2\equiv2^2-5-2 \equiv 8\mod 11

y_3 \equiv 2\times(5-8)-2 \mod 11\equiv 3 \mod 11

所以(5,2)+(2,7)=(8,3)

例题_复杂

Diffie- Hellman 密钥交换算法

基本原理

例题

设a=3,q=17

Alice: X_A = 15;Bob: X_B = 13

Y_A = 3^{15} \mod 17 \equiv6Y_B = 3^{13} \mod 17 \equiv 12

把6传给Bob;把12传给Alice

12^{15} \mod 17 \equiv 10 6^{13} \mod 17 \equiv 10 这样他们就有了共同的密钥“10”s

如上图,Alice和Bob以为自己和对方交换了秘钥,但实质上都是和Darth交换秘钥,所以Darth可以获得Alice和Bob的所有明文,这样就寄了!

ElGamal签名机制

加解密过程

已知p是大素数,g是Z_p^{*}的本原根,x为用户私钥,y \equiv g^x \mod p为公钥,选择随机数 k\in Z_p^{*}。m为签名的消息。

计算Hash(m)。

计算r=g^k \mod p

计算s=[Hash(m)-x*r]k^{-1} \mod (p-1)

签名即将消息m,(r,s)送给对方。


验证时需要计算:

y^rr^s \equiv g^{xr}g^{sk} \mod p \equiv g^{xr+sk} \mod p

而计算s时不难看出,xr+sk \equiv Hash(m) \mod (p-1)

所以拿到m后,先计算 g^{Hash(m)} \mod p,再计算y^rr^s \mod p,如果两者相等则消息m被发送者用私钥x签名过。

例题

p=29,g=2,x=2,Hash(m)=19,k=3,对消息m进行签名

r \equiv g^k \mod p \equiv 8 \mod 29

s \equiv [Hash(m)-x*r]k^{-1} \mod (p-1) \equiv [19-2*8]3^{-1} \mod 28 \equiv 1

发送消息m和数字签名(r,s)

验证计算g^{Hash(m)} \equiv 2^{19} \mod 29

y^rr^s \equiv 4^8*8 \mod p \equiv 2^{19} \mod29,签名验证正确。

Schnorr签名机制

p、q为选取的大素数,g 满足g^q \equiv 1 \mod p,x为私钥,y \equiv g^x \mod p 为公钥。

计算 r \equiv g^k \mod p

计算 e=Hash(r||m)

计算 s \equiv k+xe \mod q

数字签名为(e,s),将m和数字签名发送给检验方。


检验时计算 r^{'} \equiv g^sy^{-e} \mod p,再计算Hash(r^{'}||m),如果结果为e则签名有效。

DSS签名算法——DSA

先前条件和之前相同。

计算r \equiv (g^k \mod p) \mod q

计算s \equiv [k^{-1}(Hash(m)+xr)] \mod q

数字签名为(r,s),将消息m和签名(r,s)发给检测方。


收到m后计算Hash(m),再计算w \equiv s^{-1} \mod q

计算u_1 \equiv [Hash(m)*w] \mod qu_2 \equiv r*w \mod q

v \equiv [(g^{u_1}y^{u_2}) \mod p] \mod q,如果 v \equiv r 则签名有效。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/538603.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于harbor安装私有镜像仓库

目录 Harbor介绍 Harbor安装 下载完成后&#xff0c;在压缩包解压到/usr/local目录下&#xff1a; 修改Harbor配置文件 推送本地镜像到harbor上 1、给本地镜像打一个标签 2、 设置docker的daemon.json 3、重启docker 4、使用docker登录harbor 5、把本地的镜像push到harbor…

【C++】内存管理 |new和delete | 定位new

目录 1. C/C内存分布 2. C内存管理方式 2.1 new/delete操作内置类型 2.2 new和delete操作自定义类型 3. new和delete的实现原理 3.1 内置类型 3.2 自定义类型 4. 定位new 1. C/C内存分布 说明&#xff1a; 1. 栈又叫堆栈--非静态局部变量/函数参数/返回值等等&#xff…

机器学习之线性回归

往期目录 python在线性规划中的应用 文章目录 一、线性回归算法概述1.1 什么是线性回归&#xff1f;1.2 线性回归算法原理1.3 线性回归的应用场景 二、线性回归算法Python实现2.1 导入必要的库2.2 随机生成数据集2.3 拟合模型2.4 预测结果2.5 结果可视化 三、完整代码 线性回归…

(5)串口

串口是一种应用十分广泛的通讯接口&#xff0c;串口成本低、容易使用、通信线路简单&#xff0c;可实现两个设备的互相通信。 单片机的串口可以使单片机与单片机、单片机与电脑、单片机与各式各样的模块互相通信&#xff0c;极大的扩展了单片机的应用范围&#xff0c;增强了单…

十大排序算法(中):冒泡排序,快速排序(递归和非递归)、归并排序(递归和非递归)

这篇文章&#xff0c;我们接着来讲剩下的排序算法&#xff1a;冒泡排序&#xff0c;快速排序&#xff08;递归和非递归&#xff09;、归并排序&#xff08;递归和非递归&#xff09; 目录 3.3 交换排序3.3.1 冒泡排序3.3.2 快速排序递归优化非递归优化 3.4 归并排序3.4.1 递归…

Jmeter处理接口签名sign

写接口脚本的时候&#xff0c;很多接口涉及到签名&#xff0c;今天介绍下用Jmeter编写签名脚本的方法。 举个例子&#xff0c;开启红包接口&#xff0c;请求方式为post POST /v1/api/red/open json请求参数 { "red_id":1, "timestamp":"166703384…

springboot+vue学生成绩管理系统(源码+文档)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的学生成绩管理系统。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 &#x1f495;&#x1f495;作者&#xff1a;风…

例1:混合物压缩、冷却、分离

例&#xff1a;如图所示流程&#xff0c;一烃类混合物Feed含乙烷0.15&#xff08;摩尔分数&#xff0c;下同&#xff09;、丙烷0.20、异丁烷0.60和正丁烷0.05&#xff0c;温度10℃&#xff0c;压力101.3kPa&#xff0c;流量45kmol/h。将其压缩至345kPa后冷却至0℃&#xff0c;送…

博客园主题样式,添加背景音乐,鼠标点击等样式设置

文章目录 1)、 博客园主题样式设置1.1)、 主题文档及地址1.2)、获取文件1.3)、配置CSS1.4)、配置JS1.5)、配置Loading1.6)、其他配置1.7)、个性化配置1.8)、效果预览 2)、背景音乐设置2.1)、单曲添加2.2)、歌单添加2.3)、总结 3)、鼠标点击样式3.1)、Js3.2)、效果预览3.3)、更多…

西门子SCL编程指令状态信息

一、编程时需要考虑的状态信息 在逐步执行运动控制命令时&#xff0c;确保等待激活的命令执行完成后再启动新命令&#xff01; 使用运动控制指令的状态消息和工艺对象的“StatusBits”变量&#xff0c;可以检查激活的命令是否已完成。 在下例中&#xff0c;请按照所示顺序执行…

51单片机控制步进电机Protues仿真设计

一、概述 1.1步进电机简介 步进电机&#xff08;Stepper Motor&#xff09;是一种将电信号转换为机械运动的电动机&#xff0c;是一种专用于精密控制的电机。一般步进电机运行稳定&#xff0c;并且精度较高&#xff0c;因此常用于精密仪器、自动化设备、机器人等需要高精度的…

上传漏洞,后端黑白名单绕过(21)

文件上传常见的验证&#xff0c;&#xff1a;后缀名&#xff0c;类型&#xff0c;文件头等 后缀名指的是白名单和黑名单 文件类型&#xff1a;mime的信息 文件头&#xff1a;内容头信息 我们一个一个来说&#xff0c;这个后缀名&#xff0c;大部分可以上传的对方都不允许脚…

【TCP/IP】TCP报文段的首部格式和流量控制

TCP 报文段的首部格式 TCP 虽然是面向字节流的&#xff0c;但其传送的数据单元却是报文段。一个TCP报文段分为首部和数据两部分&#xff0c;而 TCP 的全部功能的体现在它首部中各字段的作用。 因此&#xff0c;弄清 TCP 报文段首部各字段的作用对掌握 TCP 的工作原理非常重要。…

排查jacoco覆盖率对反射问题的影响

最近业务部门开始推行&#xff0c;在全部后台应用中自动开启覆盖率测试。然而&#xff0c;不久后就有业务测试的同学反馈出现问题。 问题的现象如下&#xff1a; 我们的业务通过 HTTP 调用腾讯OSS的服务&#xff0c;结果得到了以上的报错信息。测试同学验证后发现&#xff0c…

【RocketMQ】004-Spring Boot 集成 RocketMQ

【RocketMQ】004-Spring Boot 集成 RocketMQ 文章目录 【RocketMQ】004-Spring Boot 集成 RocketMQ一、基本使用1、创建 Spring Boot 项目&#xff0c;并引入 RocketMQ 依赖2、application.yml 配置3、消息生产者4、消息消费者5、消息调用接口6、启动 RocketMQ7、启动项目&…

(1)LED

LED正负极&#xff1a;大红旗——负极&#xff0c;小红旗——正极 如何看原理图电阻/电容值&#xff1a; eg&#xff1a; 102 10 2 10 * 10 ^ 2 1000 473 47 3 47 * 10 ^ 3 47000单片机使用TTL电频&#xff1a;高电平&#xff08;逻辑1&#xff09;5V 低电平&#xff…

C语言操作符详解(上)

C语言操作符详解&#xff08;上&#xff09; 前言1. 算术操作符2. 移位操作符2.1 左移操作符(<<)2.2 右移操作符&#xff08;>>&#xff09; 3. 位操作符3.1 按位与&#xff08;&&#xff09;3.2 按位或&#xff08;|&#xff09;3.4 按位异或&#xff08;^&am…

(4)定时器

51单片机的定时器属于单片机的内部资源&#xff0c;其电路的连接和运转均在单片机内部完成 作用&#xff1a; 用于计时系统替代长时间Delay&#xff0c;提高运行效率和速度任务切换 STC89C52定时器资源&#xff1a; 定时器个数&#xff1a;3个&#xff08;T0,T1,T2&#xf…

【MySQL】MySQL 运算符

目录 一、运算符简述 二、运算符使用 1.算术运算符 1.1 加法运算符 1.2 减法运算符 1.3 乘法与除法运算符 1.4 求模&#xff08;求余&#xff09;运算符 2.比较运算符 2.1 等号运算符 2.2 安全等于运算符 2.3 不等于运算符 2.4 空运算符 2.5 非空运算符 2.6 最小…

深度剖析Mybatis-plus Injector SQL注入器

背景 在项目中需要同时操作Sql Server 以及 MySQL 数据库&#xff0c;可能平时直接使用 BaseMapper中提供的方法习惯 了&#xff0c;不用的话总感觉影响开发效率&#xff0c;但是两个数据库的SQL语法稍微有点差别&#xff0c;有些暴露的方法并不能直接使用&#xff0c;所以便想…