00:00
DS和DS呢,就说完了,好说完之后呢,我们来讲下面一个知识点,叫做加密模式,好那什么叫加密模式呢?我跟大家说一下,好,那我们来看一下,那么咱今天上午是不是看了这个叫做cer的这个,呃,JDK的这个文档对不对?好那么在S的这个JDK文档的时候,我们看一下,大家看一下在这个位置行传参数我们看一下,好那么我们今天呢,是不是使用这个方法,大家看一下是不是使用这个方法去拿到这个叫做S法的这个加密对象,对吧?好,那么在拿这个对象的时候,我们看一下,我们是不是只使用了第一个,大家一下,那第一个呢,是不是表示是算法对不对?好,你看一下后面是不是还有两个参数,咱们是不是没有进行使用,好,那咱现在就介绍后面两个参数好,记住好,那么第二个参数叫做加密模式好,第三个参数的表示是填充模式好,那么什么是加密模式,什么是填充模式,跟大家说一下,因为呢,在这个啊S法这个对象里面的话,大家看一下它支持很多加密模式和这个啊。
01:00
和这个田中模式好,咱现在把这个叫加密模式和田中模式跟大家进行解释一下,我们看一下好来看一下呢,什么叫加密模式好,那么在加密模式的话,那么它分两种加密模式啊好一种加密模式的话叫做ECB好,那么这个ECB的话,大家看一下,把它翻译过来叫做电子密码本好,那么什么叫电子密码本跟大家说下。好,那么他需要呢,把加密的消息按照块去抓,它是需要把加密的消息按照块的密码啊,按照块的大小把啊分成了无数个块,就会分成很多块,就是如果呢,你使用掉,你使用e c be cb进行加密的话,那么它会把它分割成很多个块,好然后呢,会把每一个块进行独立进行加密,我们举个例子,比如说我们在刚刚呢,在这个位置去对硅谷进行加密,好呢,它把这个硅骨会进行拆开,把它分成很多段,然后呢,把每一段呢进行独立加密,我们看一下。跟这个地方是一样,你看好这个呢,是咱们的一个叫做文本,你看这个文本好,那他把这个文本呢,会对这个文本呢进行加密,你看使用这个S进行加密好,我们看一下好呢,这边是不是又是个文本好,然后再使用这个文本,你看一下是不是使用这个S,然后呢,再进行加密好,然后呢,那么这边也是个文本好,然后再把这个文本呢,通过塞法进行加密,所不是就变成一个密文,也说了它呃,它的这种ECB的这种方式的话,那么它是会把这种消息消息块,然后把它给拆分,那那么把拆分成若干块,然后呢,把每一块进行独立加密,但是呢,它虽然进行独立加密,但是它使用的K其实呢是同一个K,你看一下这个地方使用是同一个K,好,所以呢,这种加密方式的话,我们看一下,那么它的优点是可以进行并行处理啊,可以进行并行处理,那就就就是说它的速度是很快的好,然后呢,那么它可以同时进行加密,同时加密好,但是它也有缺点好,它的缺点是因为我们看一下,因为它使用的是同一个K,你看它使用的是同一个K。
02:58
好,如果你使用是同一个K的话,那么呢,你的数据安全性的话,是不是就比较弱,对不对?好所以呢,大家看一下,好,那么呢,这叫做ECB,我们来记录一下。
03:08
啊1.9好,那么是加密模式好,那么这个加密模式话分成叫ECB好ECB呢是啊把一段文本啊进行啊分拆。啊进行分拆加密好,那么再进行分拆加密的话,会使用同一个K啊,使用同一个K,然后呢啊分别进行加密好,然后组合到一起好,那么它是这种加密方式啊好,那么它的优点是加密速度快,因为你使用是同一个K,所以呢它速度会很快,那么它可以进行并行处理,好那么它的缺点是呢,因为你使用是同一个K,所以呢是不安全的啊一一个是快,一个是不安全,好我们看一下,那么这个呢,就表示是ECB,好那么除了ECB以外的话,那么它还有一个叫做CBC。好,CBC的话叫做密码块链接好,那么刚刚呢,这叫做电子密码本,这叫电子密码本,好那么这个呢,叫做密码块链接好,那么这个密码本,这个密码块链接的话,就比刚刚那个ECB的话要安全很多,好那么它为什么安全的跟大家解释一下,我们看一下好,首先我们看一下,那么它的每一个铭文块会跟前面的密文块呢进行异或处理,然后呢,进行加密好,加密完了之后呢,我们看一下,那么会进行加密,好那么的这种方式的话,那么就是他的这种方式,你的后面一个加点都需要取决于前面的这个铭文块,好了,这句话是什么意思,我们看一下好,如果你使用这种加密方式的话,你看那么它会加一个参数,好,这个参数叫做IV,也是它的一个向量,如果你想对这个铭文,你看对这个铭文进行加密的时候,你看在加密时候呢,它会把这个叫做向量,是把添加进来,那么你说你的这个加密的方式呢,就取决于你前面的这个向量去取决这个向量好把你这个向量呢去。
04:59
通过塞法进行加密,它加密完之后呢,你会生成一个叫密文好,那么如果你当第二个这个铭文进行加密的时候,你看,那么它又取决于前面的这个K,就是说你后面的这个文本进行加密,那么永远取决于前面这个好,然后取决前面这个K,然后再把这个K呢进行加密,然后呢变成密文好同理,那么你的这个铭文想进行加密的话,那么它也取决于前面的这个K,然后把这个K呢做一个异或处理好,处理完之后我们看,那么再进行加密,然后再变成密文啊所以呢,那这种加密方式的话,我们看一下,那么你的第二种方式的话,那永远取决于前面的这个K,永远取决于前面的K,好,那你前面这个K呢是永远是不一样的,那么所以呢,它会一直把这个呃K的话做一个叫做呃异或处理好,那么这种方式的话是非常非常安全的,因为呢,你后面的密文的话,永远取决于前面的这个key好,但是呢,它的缺点就在于,由于呢,你在这边进行加密时候,你的速度肯定是很慢的,因为你必须呢先把它给加密完,然后你才能进行加密,你把它加密完你的这个是不是才能进行加密。
05:59
好,所以呢,我们看一下好那么它的优点呢,是这样的,它的优点好,它的优点是安全系数很高啊,它安全系数很高,好,那么它的缺点的话是加密速度很慢,好所以呢,这两种方式呢,是各有各的优缺点,好那么CBC的话是很安全,但是加密慢,好这边我们来说一下好第二种方式是叫CBC,好CBC的话是啊,那么在进行在进行加密的时候,再进行加密的时候啊,会取决取决于。
06:31
啊,会取决于前面的IV向量啊,那么它会有个这种向量的概念,然后呢,把前面前面的向量啊进行抑或处理。啊,那么在这个位置会进行抑啊,会进行一个叫抑或处理啊,那么呢,也说你后面的,那么后面的加密对象啊,后面的铭文进行加密,加密的时候,那么会一直会一直依赖于与依赖于前面的加密,加密的IV就依赖于前面这个IV,还说呢,或者依赖于前面这个K好,那么它的速度,它的速度会很慢,因为它永远依赖于前面的好,但是呢,它呢是很安全的。
07:16
好,那么这个呢,就表示是个加密模式好么?除了这种加密模式以外呢,还有第三个呢,就表示是填充模式,我们看一下好,那么咱刚说了,大家看一下好,那么这第三个呢,就表示是填充模式啊,咱刚看这个地方,你看一下这位置好,那么第个呢是表是算法好,第二个呢,就表示是填充模式啊,这个加密模式,第三呢,就表示是填充模式好,什么叫填充模式?跟大家去解释一下,我们看一下好,那么填充模式的话,跟刚刚的这种加密模式其实是一样的,它也分两种,我们看一下好,那么当我需要呢去按块进行处理的时候,如果你的数据长度不符合处理块的需求,然后呢,它会按照填充模式,会按照填充模式进行处理,好,那什么叫填充模式,跟大家进行解释一下。我们看一下好,那么填充模式呢,分两种,我们看一下啊,一种呢叫不填充好,大家看一下好,这个叫low paintding好,如果呢,你是low paintding的话,那么他就什么都不做,如果你把他的这个填充模式是罗拍底,那什么都不做好,那么他就表示是不填充好么?在DS算法呃底下的话,那么你只需要让原文的这个K,那是八个整数倍八个字节好A的话是不是16个字节是不是就OK了,咱刚说已经说过了,好,那么呢,这就表示no no是表示是不填充好,那么我们看一下,还有个叫做PKS,叫PKCSPKCS这种方式的话,那么它会把它进行填充好,那怎么进行填充呢?是这个意思,好那么比如说我现在呢,在这个位置呢,有一个。
08:41
这样好,比如说呢,我现在呢,在这个位置好,那么有一个叫做数据块,这边有个数据块好那么在这数据块里面的话,那么它会把这个数据呢,会会分成很多块,分成很多块好那么他在分的时候呢,大家看一下好,那不管你怎么分,那到最后的时候呢,肯定有分不上的时候,对不对,就是呢,你跟前面的话,就跟咱们前面讲这种块加密是一样的,好那你在最后一个呢,去域进行啊,区域进行那个分拆的时候呢,那么它可能是就是拆,就是呢,再进行区分时候,那么它没有办法呢,跟前面的就是大小呢,变成一样的大小,好所以呢,在最后的话,那么它就需要把这个东西呢做一个填充好,那么它填充的话,是按照这种八个字节的倍数进行填充好,那么如果不够的话,那么它就会给你进行补足好,所以呢,这个呢叫个PK啊PKCS啊,那使用的是这种PKCS好,那么这个呢,就表示填充模式和这种加密模式好了,咱现在呢,把这种填充模式和加密模式的话,那跟大家呢进行演示一下,我们来看一下。
09:42
好,那我们来去找到咱们刚的这个代码,我们看一下,好们来去找这叫DS,好,那在DS时候我们看一下,那之前我们是直接使用是叫DC,对不对?好,那现在我们来先运行一下这个decc啊,我们看一下。好,大家看一下,好,那么这是加密之后的效果。
10:05
好,大家看一下,这边是加密之后的效果好,那么啊,这是叫DS,那么我什么都没写,你看我没有写填充模式,也没有写加密模式好,那么他直接算出来之后呢,其实就是这种效果好,现在呢,我去加上这个叫填充模式和加上这个叫加密模式,好我们来试一下,好在这个位置的话,我们就已先加一个,我看一下。好,那我把它给复制一份好,复制完了之后呢,我们来看一下,好,大家看一下好,算法的话,我还是使用叫DEC这个算法,还使用这个算法好,然后我们看一下好,那么这个ECB,这个ECB的话就表示是这种加密模式。好,谢谢。好,这样呢就表示是加密模式好表示加密模式好,那么这样呢,就表示是填充模式啊表示。啊,填充模式好,那现在呢,我们再把这个代码在线运行一下。
11:08
好,预习完这个结果呢,我们把它给拿过来,大家看一下,好有没有发现呢?大家看一下这两种方式呢,它的这个结果其实是一模一样,你看一下,如果呢,我在什么都不写的情况下,大家一下我之前是不是使用是DES对不对?好,如果你使用DS的话,你看加密完之后呢,你看它的结果是不是是这个结果好,然后现在我是不加这个叫加密模式,是不是也加了这个提升模式,大家看一下结果是不是还是这个结果好,那么从这个结论我们可以看出来,记住啊,如果呢,你直接写的这个算法,没写加密模式和没写提升模式话,那么它默认的话就使用是这种ECB进行加密了,好,这边写了注释啊,如果默认啊,如果默认情况下,记住,如果在默认情况下,那没有写填充模式和加密模式好,那么默认就使用的是这个叫ECB这种加密模式啊,PKCS看它使用是这种。
12:09
好了,咱把这的咱就把它说了好,说完之后我们现在来改一下,我们改一下好改成什么,我把先去改这个叫加密模式,好比如说我先把它注释掉。好注意掉,好注意掉之后呢,我们看一下在这个位置好把它拿过来,好拿来之后把它改一下,刚刚我们是不是加密模式是不是有两种,咱刚在这个位置是不是使用是不是叫EB,对不对,好现在我把这个加密模式给改一下,我看一下,你看咱刚是使用是ECB这种进加密,好现在我使用这个叫CBC啊,我们试下,好当然这个呢,我就啊用CBC好,那么大家看后面这个地方好,后面这个地方呢,我就不改了,后面的填充模式还是使用这个填充模式,我们来试下,看它有没有什么问题,我们来试一下。好,大家看,那么这个地方你看是不是就直接报错了,好那么他报什么错,大家看一下他是不是报了一个叫参数错误对不对,是报参数错误,好那为什么会参数错误呢?跟大家说一下,你看一下好么?在这个位置你看是不是使用这个叫加密,好加密的时候呢,大家看他是不是报了一个什么叫IP异常对不对?好那么什么叫I异常呢?跟大家说一下,是这个意思,跟大家说一下,那大家各位还记不记得刚刚我们说了,如果你使是叫CBC的话,大家看一下,如果你使用CBC的话,你看下在这个位置是不是需要加上一个叫向量,好那么这个向量参数是不是叫做IV对不对,因为呢,如果你在使用这个叫CBC进行加密使用的,那么你不管怎么进行加密,那么它就决于你前面的这个加密的向量,就说呢,你在使用CBC的时候呢,那必须要把这个叫做IV这个参数给传过来,因为呢,你的这个加密方式必须要取决于前面的这个IV,记住啊,需要取决于这个前面的这个向量,好那么这个向量怎么去进行添加呢?我们看一下。
13:53
好,大家看一下,你看在这个位置的话,那么他是不报了这么一个错,对不对,他会报这个错,好现在呢,我就需要呢,把这个错误给进行解决一下,我们看一下,好,那我再进行加密时,我们看一下进加密,好那在加密时候我们看一下,那之前我的这个位置是不是使用的是这个加密规则,对不对,我使用是这个加密规则,好现在我就需要干件事情,我在这个加密规则后面的话,我需要再添加一个东西叫IV向量,我们看一下。
14:18
啊,那么创建啊,创建IV向量好,记住啊,这个IV向量啊,那么是使用到啊CBCCBC加密模式,记住啊,你只有在CBC的加密模式时候呢,才需要使用到这个叫IV向量好,这个IV向量怎么进行添加,我们看一下,在这一种需要new一下叫IV好,咱把这个参数呢,就它给丢进来好么,得到呢就叫IV好,那咱把这个IV呢,就把它给传进来,咱这边就作为它的第三个参数,就IV好,那在这IV里话,就需要呢去传一个这个,首先它的第一个参数呢,是这个地方需要他传一个参数好,那么这个参数呢,是它的一个K的字节数组好,比如说我这个K12345678好,在这边传一个叫字节数组好,大家看一下好,那么这个叫IV向量,我就已经把它给传过来了,好,传过来之后呢,我需要注意下,你在加密的时候呢,你加这么叫IV向量,好,那么你在解密的时候的时候,自然而然说也需要加一个对不对,好所以。
15:18
里我们看一下好,那么在这个位置大家一下这个位置的话是不是需要呢,去进行解密对不对?好那么在解密时候呢,也需要创建IV向量,创建IV向量好,那么呃,这边的话就需要好加这个向量好那么这向量的话跟刚才的代码是一样的,叫IV好,大家看一下把它给弄过来好,那么在这位置就得到一个IV好,把这个IV向量呢,就把它给传进去,作为它的第三个参数,好那么这边的话就是一个叫做IV向量,那么需要呢,传进来一个啊规则好,那么在这个规则里面我们看一下啊,这边是当当前这个规则好,这个规则的话是不是当前的这个K对不对,把这个K拿到好,拿这个K之后我们看点get一下,你看就我拿到当前的一个叫做数组,对不对,拿这个数组好,那咱把这个呢,就就已经传进来好,传进来之后我们再来预习一下,我们看效果。
16:11
好,当然你看是不是就解密成功对不对,你看好,那么现在你看这个加密之后的这个结果是不是就不一样了,我们看一下这个位置。好,大家看一下,我把这个东西呢,再复制一份。好,我们看一下你看好那么之前的话,我们看那之前使用是ECB进行加密,好ECB啊加密的话,你看结果呢,是这个结果好现在我使用CBC加密,CBC加密的话,我加了一个向量,加之后呢,那么你加密的话会更安全,你看加密结果就不一样,对不对?好那么这个呢,就表示呢,使用的是这种CC好么?在使用CC的时候呢,各位你就需要注意一下,好那么你的加密的效果呢,是不一样的,就加你加完这个项之后呢,你加密效果是不一样的,好这种加密方式的话是比较安全的,好那么咱刚刚就说了,这个是加密方式,加密方式的话咱们也已经说过了,好,一个是叫CBC,一个叫做ECB哈,这是两种加密方式,好那么是不是还有填充模式,填充模式的话,除了这个叫PKCS以外,是不是还叫对不对,好,现在呢,我就把这个东西呢再改一下。
17:17
好这个东西呢,改一下,改成什么呢?我把它改成叫noding,我们看一下,好我们来去找一下叫noding,好我们去来好那来之后我们看一下,那么这个呢,是一个叫加密就填充模式,对吧?好那这个呢,就不填充就不填充,好现在呢,我们来进行运行一下。好,我们看一下好,那么他呢,报错了,好那么为什么报错了,他说我的原文的长度不够好么?这个地方呢,就跟大家说一下好,如果呢,你使用是这个啊叫做啊不填中啊不填充的话,必须,那么它的这个原文必须是八个字节的整数倍,我跟大家说一下。好,这是不是原文好,那么这个地方啊,如果使用,如果使用的是不填充的模式,好那么原文,记住原文必须是八个字节的整数倍,整数倍好看一下,那硅谷的话是不是原文啊,硅谷话是不是六个字节好,那我现在呢,六个字节很明显不是八个字节整数倍,对好,我想让它变成八个字节整数倍的话,是不是加两个是不就OK了,我们再来试一下。
18:27
好,答案一下,你看这个是不是就已经解密了,对不对,好,所以你看一下,好,那么这个解密的密文,答案一下,这个密文是不是跟前面也是不一样的,我们看一下。好的,你看这个密文好,这个密文的话,跟上面是不是也是不一样的好,所以呢,这个地方呢,就需要注意下,如果呢,你不是填充模式的话,那么你的这个地方啊,你如果你是啊填充模式啊,啊不填充好,如果呢,你是不填充的模式,那么你的原文必须是八个字节的整数倍啊这个地方注意一下,好,包括我们刚刚下面这个地方呢,也得注意一下,就是刚刚我在这个位置,好,那么在这个地方呢,去写这个向量的时候呢,也需要注意一下,好那么你写向量的时候呢,记住啊,那么你的这个向量的长度必须也是八个字节好,比如说我把这个字节去掉好,去掉两个好,你看这是不是123456是不不够八个字节好,下面这个地方我也去掉一下,好,大家看我来运行好运行的话,那么它应该也会报错。
19:25
好,咱家看一下,你看在这个位置,你是不是说IV的长度报错对不对,好他说了,你看IV的长度must是必须要好,必须写字节是不是必须八个字节的长度好,所以这个地方也需要注销好那么你在使用这个叫IV向量的时候,记住在使用IV向时候呢,那么它的字节长度也必须是八个字节边写下好那么在使用使用IV向量好进行进行加密,进行加密的时候,好,那么呢,这个IV的啊,IV的字节啊,也必须是八个字节好,那么咱就要把这个叫啊什么是填充模式呢?什么是加密模式呢?就跟大家说完了,好,说完之后呢,咱们呢,再进行回顾一下,我们看一下好,刚刚呢,咱们讲的这两种模式啊,好一种是叫加密模式好,加密模式的话是需要呢,你直接把文本,然后呢,把分割成一段一段的好,然后把每一段呢进行分别加密,然后呢再把最后呢组成到一起,好,那么这个呢叫做ECB好么?这种ECB的话,那么它有用的呢,都是同一个K。
20:25
好,如果你使用的同讯器的话,那么相对来说呢,其实并没有那么安全啊,所以呢,并没有那么安全,好那我们来说一下呢,呃,接下来我们就介绍一叫CBC,好,那么CBC呢,进行加密时候呢,那么它会取决于你的后面的这个文本的原文进行加密的话,那么它一定要取决于前面的这个IV向量,好么,前面这个IV向的话,其实就相啊前面这个IV线的话,其实我也可以把它当成一个密钥或当成什么东西,就是你需要跟前面这个IV线的话做一个密,呃诱货处理好,处理完了之后呢,我们看一下,然后呢,那么它就会是啊会进行呢通过S进行加密,好呢,会对这个密文,对着密文之后我们看一下,再把这个密文啊这个K拿出来,然后呢,再跟后面的进行原文的进行啊匹配好,这样的话,那么你的CBC啊CBC这种加密模式呢,是很安全的,好那咱就把这个两种加密模式就说了,好说完之后我就说一下这个填充模式,好填充模式的话会有两种,一个呢就叫lo不填充,一个叫做啊PKCS好了,这两种方式的话,那么啊这是两种填充模式,好那咱现在就把这个叫对称加密的东西呢。
21:25
就跟大家呢,就全部已经说完了啊,对称嘉宾的话,那么将来在开发过程当中,其实用的也会非常非常多啊,这个呢,各位也需要进行掌握。
我来说两句