00:00
做完之后呢,咱说得写个代码呢,跟大家呢,就是来看一下对不对,我们来去新建一个叫做DS和CS,好,我们来再去新建个包啊。好,新建完这个包,冲我们来去新类就叫DS和DS这个DEMO。好,那么这个呢,是叫做对称加密,好,那咱把这个对称加密呢,我们就已经说完了啊,就把刚呢把这个原理呢,跟大家讲一下好,那讲完原理之后呢,我们看一下好,那么呢,我们就需要呢,使用到这个加密方式,好那么你再进行使用加密方式的时候,首先你是不是需要有原文才进行加密,对不对,看原文好么?比如说呢,我的原文string好,去定一个叫input好,那么这input是咱们的原文,比如说我就定个叫硅谷对吧,就是硅谷好,现在我就需要呢,对硅谷这个词呢,去行加密好,那么你在加密时候呢,是不是需要呢使用的这呃有它的K需要有蜜钥的对吧?好,所以呢,我们看一下就定义K啊定义K好,我们看一下,那么这个地方呢,我去定义stringk,好K的话我们看一下,比如说呢,定义12345678 OK啊好,那这个是咱们的一个叫蜜月,是咱们的一个K,好把这个K呢,就把它定义好了,好定好之后我现在需要呢进行加密。
01:24
好,加密的话就需要呢啊带大家呢,学个加密对象好,创建加密对象好那么这个加密对象的话,这个类呢,各位以前应该没用过,我们来看一下,好,那么这是各位呢,以前应该见过,是啊JDK对吧,是JD的这个文档,好大家看一下好在这个文档里有个类叫spher这个对象好,那么呢,这是一个类啊,这个是个类,好那么这个类是用来干嘛的,我们看一下答案,这边是啊JK文档的对他一个解释,好,这个类的话专门提供加密和解密,你说这类是专门做加密和解密用的,那么它可以进这个类,可以进行加密,也可以进行解密,好那么它是Java的这个核心啊,就是这个Java这个框架的一个核心,好那么怎么要得,怎么才能得到这个加密对象呢?我们看一下好,如果呢,你想创立一个加密对象的话,大家看一下,那么你需要调用程序的这个get instance这个方法,嗯,就调这个方法好,调完这个方法之后呢,你就能得到一个加密对象,好,那么在这加密对象里面,那么它需要呢,传一个参数,我们看一下,好,那么这个参数的话,我们。
02:24
看下,那么它需要传一个算法大家下好,那么它有两种参数,你看第一种参数是算法或者是模式,或者是填充,好那么呢,呃,什么叫模式,什么填充,这个咱你先不管,你先记住,如果呢,你调一下这个叫get instance的话,那么你需要传一个算法,好大家看一下,在这个位置上他写个DEMO,大家你首先你想得到这个叫加密对象的话,你看好通过这个s.get下instance,那么需要传进去一个叫加密,加密的算法,好,这个加密算法的话,我们看我们现在是使用是不是叫DES,对不对,好,所以现在我就清楚了,好那么我就拿了这个类,好,那这个类之我们看一下,那么他是不是需要我先找一下包啊好,先找下包好打完之后我们看下那这个类,那么他想得对象是不是叫get instance,好get instance里面的话,大家看一下,那么它需要接收一个算法,好这个算法的话,我们看一下,在这个位置就是叫DES这个算法。
03:15
好,咱这边是这个叫DS码啊,那咱把这个呢,异常的给抛出去。啊,抛出去。好,大家看一下,那么在这个位置的话就得了,叫S法对象,嗯,你看那么这个地方就得了S法对象,那么需要传进的一个算法,好那咱也可以把这个算法拿到外面去,因为一会我们还用上,好我们看一下,在下面我去找一下这个叫get,这个方法我们看一下,好往下走,各位大家看在这个位置往下走好看那在这个位置的话,那么它会去调一下get,你看是不是就调这个方法叫get instance你看它传进来这个算法是不是叫大家看一下这个东西,把它翻译过来,这个这个东西翻译过来不是叫算法意思对不对,好把给拿到这个地地方好,那么呢,这个呢就要DS好,那么咱把这个D呢,就把它放在这个位置,好我们看一下,那么它翻译过来是不是就算法的意思对不对,好,所以我们看一下,好,那这个呢,就表示算法好,大家看好,那把DS这个算法就把它传进来。
04:18
好当然好,咱把算法传起来好,传进来之后呢,我们看一下,那接下来我就需要呢,使用它呢,进行加密,好,那么怎么进行加密,首先呢,需要做个初始化。啊,进行啊,进行加密初始化,好,那么怎么进行加密初始化,我们看啊,通过这个叫S法对象,好,那么它里面有个叫in e的方法,好,我们来看一下这个银E的方法,你直接看这个参数应该可能看不出来,大概一下你看啊,这边是一个I,然后说K,你直接这样看不出来,咱们这样好,那咱也看它的文档,我看好去找这个引译的方法,好,大家看一下往下往下找。好,大家看一下,你看这个地方呢,是不是就是引义的方法好,首先我们看需要呢,先给他传一个模式,需要给他传一个模式,就记记住第一个参数呢,是个模式好,第二参数呢是是一个规则啊,第二第二参数是个规则,好们先说第一个参数啊,第一参数是模式好什么是模式,跟大家说一下,我们看好模式呢,再往上面这个地方呢,它有介绍,我们看一下,打家看一下,你看好这个地方呢,就是它一个模式,你看下好model是不是就模式意思对不对,好我们看下,那么在这里的话,那么它有两个模式,好,那么这种模式呢,是叫做解密模式好这种模式呢是叫加密模式,因为我们刚说的这个S法这个对象,S法这个对象的话,那么它作用是不是两个,第一个进行加密,第二个是不是进行解密啊,所以我现在就清楚好,如果我在调用这个叫一一的方法时候呢,我们看下第一个参数呢,就表示是模式啊,第一个参数啊表示模式好,那么它模式的话是不分两种,一种是叫做加密模式,还一个呢是叫解密模式,对吧,两模式好,现在的话我想去做加密,所以我说要传一个叫加密模式。
05:56
好,如果像我在这个位置,我就需要传一个叫加密模式好看那加密的话是不是叫大家看,这是不是就表示是加密意思对不对,好,这就表示加密好,第二参数跟大家说一下,第二参数表示加密的规则,第二个参数啊表示加密的规则,好那么这个啊加密的规则怎么去定义呢?在这个位置就需要把这个加密规则呢给转出来,好,我们看一下就创建叫加密规则好,创建加密规则好,那么怎么得到这个加密规则,我们去六一下,好大家看下这样个就表示是个加密规则。
06:33
好,你看好,那么你把它翻译过来,你看这是不是就加密对吧,就加密这个秘密好,那K,那么其实就咱一个密对吧?好大家看这个呢,就是是不是就表示规则好,那这个呢,就表示是加密规则好,那在加密规则里面的话,同样它也需要传两个参数,第一个参数呢,表示是你的K。好,我看一下啊,第一个参数啊,表示K的字节好看一下我的K的话,是不是就是它是不是有加密的这个规则的,就是加密的这个K好把这个K呢给拿进来好拿进来之后我们来点get下好当然那么第一个参数就传进来好,第二参数呢,需要呢去传进去啊第二参数呢啊,它第二参数呢是一个加密的这个啊,你也可以把理解成一个叫加密的算法好,那第二呢参数你需要注意下,第二参数呢,它是叫暂时咱们也把它理解成加密算法嘛,咱们这样好,那我把它也传过来,其实呢,它不是加密的算法,第二呢就表示的呢,是一个加密的类型,这样我把它写这个地方吧,啊加密类型啊,记住第二参数表示加密类型啊,它跟这个算法有点像啊,我看第二个参数好,表示加密的类型好,那么在这个加密的类型里面,我们来去写一下。
07:50
我们看写一下加密类型好,同样的也是叫好的话,我们继续写个叫加密类型叫transform transform啊transformation transformation好,那么在这个transformation里面,我看一下把它给传过来。
08:06
啊。我们看一下在这个位置是上面这个算法好,这边的话表示这个叫做加密的这种类型,好了,咱把这个叫加密的类型的话,我们来去写stream,好,那么它的这个类型的话是叫呃。加密的类型好这个单词啊,好像是这么拼的吧,THM,好,这个呢就表示个叫加密类型,用到这个加密的这个东西的话,咱们进啊写的比较少,这个啊应该是没拼错吧,就是加密类型好,那我把呃,这个呢就表示一个叫做加密的类型啊,就表示是个加密类型好,那么有了这个加密类型之后,我们把这个加密类型呢放到这个位置啊,就是第二三数呢,就表示是这个叫加密类型好了,咱把这个加密类型呢写这个位置好,写完之我们看一下,那么我就把这个叫加密的规则就放到第二个答案下,第二三个就表示加密规则答案,那这个呢,就把它给写好了,好,写好之后我们看,那这个位置的话,是做了一个叫加密初始化好,那么你要真正去做加密怎么办?我们看一下,好,就需要呢是真正去啊调用调加密方法好,那么调用加密方法的话,那在这里面的话,有个叫做do final的这个方法,我们看一下,在这位置我们看一下,它有这么一个方法叫做do final,它do final的话我们看一下,你看如果调完这个方法之后,你看,那么它就会以完成加密。
09:25
一会解密的操作好么?你不管是加密还是解密,那么都需要调度方法的方式法啊,这个方法我们来看一下,好,现在我就需要呢,去调下这个方法,我们看好通过这叫S法对象,好那么在这个S法对象里面,我们说了,在这个时候是不叫第二下就叫do final。好,那么你在加密时候调这个方法,那么你解密也要调这个方法,好那么我们看这个方法你看,那么它是接收一个叫做BA类型的一个叫数组,对吧?接收BY类型数组好了,现在我就需要把这个叫BY类型数组给它,好我们看一下,那么给它的话是需要呢,把原文传进去进行加密,好大家看一下好点get下好我们看一下,那这个位置的话,我们就写个注释啊啊写个这个参数好,参数表示原文的原文的字节数组,好那咱就把这个原文的这个字节数组呢就给他好,给他之后你看那加密完之后呢,那么它会返回给我一个值好,咱看一下,好,那返回给我一个叫BA类型的值好,那这呢就把它给加密好,那么这呢就表示是密文啊,就表示密文好,那么呃,如果你是密文的话,现在我把这个密文先打印一下,我们看效果好,我们看打印密文啊,打印密文好么?这个打印密文话就通过叫ES好,那么在这个时就通过了,好那么你这边是个叫字节数组,你直接打印的话肯定是啊。
10:41
看不出来的,我就需要这样哈,我就new一下,扭一下string,好,那我把这个呢,But把它给丢进去,好,大家看一下好,那那么在这个位置我就打一下这个密文,我们来看一下,看一下这个密纹呢是多少,我们来预习一下。好,大案下,你看这个密文呢,就把它给打印出来了,好,但是这个密文你直接看的话,那么他是一个乱码,这个密文跟大家说下,好,如果直接打印密龙,打印密文的话会出现乱码,好,如果直接打印密文会出现乱码,好那么为什么会出现乱码呢?我们看一下,那之前我跟大家是不是说了一下它的特点,大家看一下好,那么啊,如果在编码表上面的话,找不到对应的字符,是不是就会出现乱码,也说我在这个地方呢,进行加密,加密完之后,那么这个地方,那么贝啊把转成字符串之后呢,那么我是在阿斯克码的这个编码表上面的话,是找不到它的,找不在阿斯克码这个编码找不到,找不到的话就出现乱码,好那么现在我可以这样子,你这个地方不是一个叫字节数组吗?那我把你每一个字节打印出来,我看一下你到底是个什么东西,是不是,我是不是就知道你的密文是什么样子了,我们看一下在这位置好通过CTRLC好那么你说败的类型数字,我是不是可以通过叫迭代,通过迭代是吧?好,那么在迭代时我们看一下,那我是不是可以把你的迭代这个。
11:57
诶,打一下好打看一下打一下好,打印完之后我们看一下你的这个密文到底是个什么东西啊,我们来预习一下。
12:07
好,大家看一下,你看这个时候把它的这个密文打印了,好打印完之后呢,你看下为什么会出现乱码,有没有发现这样个问题,你看好,那么在打印的时候,你看这边是不是有个叫负数,你看是负88,是不是有个叫负78,还有叫负66和93,对不对,也说呢,这个负数的话是在阿斯克玛这种编码表上面是找不到的,好我们来对比一下,我们看一下,那在阿斯克玛这个编码表的话是没有负数的,我们看一下好答案你看好这边的话是不是一个阿斯克码的这个表,好,那我们来看下实进制,我们看一下你看这一溜,这溜的话是不是一个正数,好那么这一溜的话是不是也是正数啊,大家看一下这个地方是不是也是正数好,所以各位现在应该清楚对不对,好这个地方呢,各位就需要注意下好那么呢,如果是在阿斯克玛的这种编码表上面的话,如果呢,没有。记住啊,在这个编码表的上面的话,如果呢啊找不到这个对应的值,就会出现乱码,这个地方跟大家说一下,嗯,打开打密码会出现乱码好那么出现啊乱码是啊是因为是因为在编码表上面表上面啊找不到对应的字符,因为呢,它是没有负数的,就找找没有复数好没有复数的话,那么他就找不到好那现在呢该怎么办?那现在我我直接打印的话,我是看不看不了的好看不了的话,那我又我又想看好我也想看的话,我需要呢,做一些事儿,好那把它做一个转码好怎么转码,我看一下之前在这个位置,我们是不是说了那么一般呢,我们的这个叫做呃啊这个加密方式的话,那么需要呢,配合贝斯64进行使用,好,那么配合贝斯64怎么进使用,我们之前是不是在大大家前面应该学过这个叫base斯64对不对,好,我们来看一下,好,那么如果呢,你在这个位置,你在这个地方呢,你得不到的话,我看在这个位置它是乱码,好,那如果是乱码的话,我就需要导一下叫贝斯64的包。
13:53
我们看一下在下面这个位置,好,就直接呢,你看在这个位置,我就通过一个叫BASE64做个叫编码,编完码之后再进行打印,那么就能看到效果,我们来试一下,好,当然现在我把这个东西呢,把它给先注释掉,把它给注释掉好注释掉之后我们看一下,那么在这个位置我们就啊,就创建掉贝斯六色啊创建贝色。
14:15
啊,贝斯64对象好么?怎么创建就通过一下贝斯64好,那么在导包的时候呢,需要注意一下,导这个叫阿帕奇的包啊,大家看有没有发现,你看啊贝斯热词里面是不是有四个,你看啊这个是带阿帕奇的,这个是带阿帕奇的这导包别导错了,只要是带阿帕奇的其实就可以啊,如果你导的是这个或者是这个,那么就会报错,好这个地方我们来说一下叫base斯啊BASE64好,导这个包好导这个包呢已扣一下好的,我就把这个叫BA呢,就把它给丢进去啊,把这个back丢进去好丢完之后我们看一下,嗯,那么它会得的叫in扣的编码,好,那么在这个位置我就需要呢把它给打印出来,我们来看一下,好这边是使用着贝斯洛斯呢,进行转码,我们来运行一下。
15:02
好,咱家看一下,你看这个呢,是不是就已经把它给加密了,就已经加密了,好那么咱们这边的话就使用是贝斯64进行转码,好,那咱就把这个叫做对称加密呢,咱就把它给说完了,好那么我们再把这个代码跟大家进行回顾一下,我们看一下。啊,首先呢,我需要创建一个叫加密对象,好,那创建这个加密对象的话,我们看需要什么叫做S法对象,好那么这个S法对象的话,咱们刚是不是看了JDK的文档,就是这个对象的话,是专门用来做加密和解密用的,就是说它既可以进行加密,那一会要进行解密的话,那还是使用它啊所以呢呢,大家看,那通过这个S法调下get instance,那么需要传进去一个算法,好那么这个算法的话,就是我们使用这DS这个算法,把这个算法给传进去,好传进去之后我们看一下在这个位置我需要呢去创立的加密的规则,当然这边是个加密规则,好,然后咱把这个加密规则创进去了,好,那么加密规则的话,那么它接收两个参数,好,第一个参数的话,就表示你的原文,记住就表示是你的一个K好,是一个K好,那么这边是一个K好,后面的话是你的一个叫加密的类型,加密类型,然这边我使用是DS好,那么暂且你把这个加密类型和加密算法暂且呢想象成同一个东西,其实它不是同一个东西,到时候我们会解释好,现在你把它想成同一个东西好,那么这个地方呢,是这个加密类型好,那么你要得到一下加密规则。
16:17
好,那么在加密规则之后,我们看首先需要做一个初始化操作,那么你需要把这个模式给填一下好么,这边就表示一个加密模式,然后把这个加密规则丢进去,好就完后我们看如果你想真正做加密的话,那么他说了就需要调下调第啊那个do final这个方法好那么你需要通过原文加密,所以需要把原文给传进去,好传进去之后我们看再通过贝斯次做个转码,好,那咱就把这个叫做呃,把这个叫DS进行加密的,这个东西呢,咱就说完了,好那么在D进行DS加加密时候呢,需要注意一下,你的叫K必须是八,八个字节必须是八个字,好,比如说我在这我删掉两个啊,比如说我运行一下。好,删掉之后有没有发现,你看下,那么他是不是说了你的这个长度是六个AT6次节好,记住啊,六次节的话就会有问题好那么如果呢使用是DS进行加密的话,那么你的这个蜜钥必须是八位,好如果使用DS进行加密,好那么那么蜜月必须是八个字节,记住啊,是必须是八个字节,好,那现在我们再把它加上。
17:24
好,你再运行看看就OK了。嗯,这个OK了,好,那么这个呢,就是使用的是啊这种DS呢,进行加密。
我来说两句