00:00
好,下面呢,我们来看一下这个加密的这个问题。啊,那关于这个金融这类的这个项目,我们说了,呃,两个比较重要的啊,一个呢,就是关于数据的加密解密,呃,另外一个呢,就是呃用户就是你这个平台的啊,用户的一些记录啊,呃一些这个信用啊,像这样一些数据啊,对于每个平台来讲是比较重要的一些数据。啊,我们看一下这个加密的情况。加密呢,这里边儿我们先做一些介绍啊,等后边我们做支付的时候呢,我们具体就要用了啊,包括登录的时候,首先来看一下这个加密的类型。啊,数据加密的类型的话呢,我们这分成三类啊,对称加密,非对称加密和单向加密。嗯,首先呢,来看一下叫对称加密。啊,加密就是我们这儿呢,你可以先提到一个词呢,叫铭文。嗯,对,那个呢,对应的叫暗纹。
01:00
这个是不是意思也很好理解啊,英文就是你能看得懂是吧,嗯,能直接他写的是什么暗文的。就变成那种你不知道他要表达什么的这样一个就跟暗号一样了,是吧,就那个看着像是乱码,实际上它是具体表达一个具体的意思了啊。那像古代战争的话呢,咱们也有好多那个。那种暗号或一些特殊符号是吧,有的那时候不是写一篇文章,呃,其实对,然后扣几个洞,然后那几个洞呢,就是他要说的事,其他呢,就前后给他补充文字是吧。啊,就各种各样的方式哈,包括二战的时候呢,呃,希特勒不是就后来就说实际上已经都破译了他的那个那些密码了,是吧。对图灵啊,有一个电影不是专门是写图灵的吗。嗯嗯,然后这儿呢,我们就来说说这关于这个加密这个相关的一些操作啊,首先这个呢,叫对称加密。啊,什么叫对称加密啊,就这里边涉及到明文转暗纹,暗文转明文用的那个叫它叫私钥啊,这个是一样的。
02:02
啊哎,又称作叫私钥加密。嗯,加密和解密使用的是相同的密钥。啊,就把铭文转化成密文啊,或者叫暗纹,然后把密文呢转化成铭文,用的呢是同样的这样一个密钥啊,这就叫做啊对称加密。啊,这要对称的啊,就比如说你把家里边这个大门,你开门跟锁门啊,用的就是同一把钥匙啊,这个钥匙呢啊,就是一个密钥的意思。常见的这个对称加密算法AES。ES啊,RC5啊,这样的几种不同的方式。嗯嗯,在我们这个金融项目里边呢,基本上是不用对称加密的。啊,那就跟他这个特点是有关系的啊,对称加密这个特点的话呢,这里边也写了啊,首先呢,它这个双方用的这个密钥都是一样的啊啊那这里边它的特点就是算法公开,计算量小,加密速度快啊,加密效率高。
03:03
啊,这都是好处啊,啊,那不好的地方呢。啊,这这也是好处啊,你速度快了,所以适合加密这个比较大的文件啊,不好的地方呢,就是它这个,嗯,像这个保密性不是特别好。啊,保密性不是特别好啊,你像这个呢,比如说像WiFi这个密码啊,或者这遥控器这个密码啊,我需要呢,它能快速的做加密,然后那边呢,也快速的做解密啊,用它没有问题。啊,当然这个保密性稍微差一些,那应运而生的话呢,就会有这个叫非对称加密。哎,这个非对称产品在我们这个金融项目当中啊,会被使用到啊。那什么叫非对称的?那是相较于这个对称来讲啊,非列称呢,就是你把铭文改,呃,这个转化成密文,或者密文转化成铭文中间用的这个,呃,相当于密钥不一样了。啊,不一样了啊,这里边儿涉及到两个,一个呢叫公开密钥,一个呢叫私有密钥。
04:04
说每个人拥有两个密钥啊,公开密钥呢,对外公开,任何人呢都可以获得,私有密钥呢,不公开啊,只给单独的用户啊,如果用公开的民谣对数据进行加密。那只有呢,对用对应的这个私有密钥才可以解密。啊,如果你是用这个私有密钥进行加密的呢,那只有用公开的密钥才能解密,就是他们用的不是同一个密钥了,所以叫非对称的。啊,涉及到有两个。啊,有两个,比如说我们在呃,我们的这个项目当中,在具体这个订单你提交的时候呢,我们这里边儿就涉及到呃相应的这个。密钥的问题了啊,这呢我们就有两个,一个呢是私钥,一个是公钥。啊,这相应的是我们商家注册以后呢,就有两个这个密钥啊。啊嗯,那这边也写了,说如果某一个用户得到了公钥加密以后的信息,只能够用该用户的解密的私钥才可以解密,啊,如果呢,得到知道了其中的一个,并不能计算出另一个,因此呢,如果公开了密钥中的一个并不会对,那并不会危害到另外一个秘密的性质。
05:13
啊,就是你只拿到一个呢,其实没有用。啊,但是你要对称的话呢,因为呃,解密跟加密都是用的同一个,其实你就可以给他解析了啊,这个呢,不行,那得用一对啊。哎,这里边儿提到一个典型的非对称加密啊,一个算法叫rsa。嗯,这也是我们在订单提交的时候呢,需要用到的这样的一个加密算法啊,那它的特点跟这个非对,跟这个对称加密正好相反。啊,正好相反啊,就是它的好处呢,就是保密性比较好。所以呢,我们提交订单的时候呢,才会用它。啊,但是相应它来讲呢,保密性好了,缺点呢就是加密和解密花费的时间就比较长,速度呢就比较慢一些啊,所以它适合加密的是一些数据。
06:02
啊,就是我们所说的,比如说就一些变量。啊,就像咱们前面讲这个数据存储的时候,像SP存储存在一些变量啊,像这些变量的话呢,我们用非对称的啊,其他的像具体的是一些很大的文件了啊,那我们可以考虑,如果你这个呃,加密性还要求不那么高,对速度要求更高的话呢,那我们就可以用对称的。哎,用它来做啊。啊,这个大家能够有这样一个印象,然后下面呢,提到叫单向加密。单向。什么意思啊?就是你不可逆了,意思是吧。嗯,该算法在加密的过程当中不需要使用密钥。输入铭文后呢,由系统直接经过加密算法啊处理成密文,密文无法解密。啊,只能够加密,加密完以后呢,不能解密。那这个算法有什么用啊?
07:02
比如你管管加密码以后,你也不知道他到底写了什么,他也不可解密,不可逆。是吧?那你要他有什么用啊?保密数据啊,就首先呢,这个它的这个叫什么呀。解密性或者或者这个加密的这个效果比非对称加密还要好,呃,它呢是最好的这种。加密的一种方式。因为它都不可解密了,家是吧,啊意思就是你你任何算法你是不可以得到它的一个从秘文啊,通过这个算法就可以得到它这个铭文是永远做不到的,所以它的加密效果是最好的啊呃,通常用来做什么呢?就像我们这个MYSQL这个服务器里,呃,数据库里边。啊,我们这里边儿这个密码,这都是使用的MD5加密。MD5呢,就是典型的一个单向加密。啊,就是比如说你在银行柜台这块呢,你去他让你你输入一下你的密码,你就在这一顿输入,其实他是不知道你输入的是什么的。
08:01
反正知道那就坏事了是吧,哎,他不知道啊,所以呢,对于他来讲,这些数据呢,都是呃看不到的,而且呢,他也不能够试图给他再按照某一个算法给他解析出来。那我们输入这个,既然不能解密了,那是加密性也很好,那怎么用啊。啊,那就是匹配。啊,就是匹配,比如说呢,呃,我们在这个安卓客户端,我们输入一个用户名,输入一个密码,这时候密码呢,我们写的是123456。啊,然后呢,我们这是外部服务器啊,这是我们的后台数据库,就是我们这个里边这亮这不写了一堆这种书吗。那就是你看不看不懂这是什么,一共32位的一个字符串哈,嗯,那我这个写的123456,我去跟他呢,你看他写的对不对,我只要匹配一下,看看是不是我这个,如果要加密的话。也是这个。那说明你输的不就一样了。对吧。
09:00
哎,那这个时候呢,123456,我把它做一个加密,那大家想我是在本地这就加密了,还是我发到服务器,让服务器这块加密啊。在哪写?为什么在本地啊?嗯,对,你这个123456在中间呢,是不是有可能这个有一些伪基站是拿捏你这个信息,这这不就明文了。是吧,那你这加密的意义在哪呢?没有了啊,所以呢,我们保证传输的时候呢,它也是一个安全的啊,所以在本地加密好以后再发出去。呃,发到服务器端,服务器端呢,嗯,拿着这个你加密好以后的这个字符串,32位跟服务器这个,呃,跟后台数据库里边校验一下发现哦两个都一样啊,那说明呢,你就是也写的是1234。但是他不知道你是是谁啊,他就光知道一样不一样。啊,就相当于通过匹配的方式。啊,通过匹配的方式呢,比如说我我输入的是铭文,经过同样的加密算法处理得到的这个密文是一样的啊,那我就认为是相同的。
10:04
嗯嗯,这里边儿呢,又提到有一个这个这个网站哈。啊,这个叫MD5。我叫解密吧。嗯,这个网站呢。看着还是比较朴素的哈。嗯,但他呢,做了一个事,就是他帮你去匹配。啊,帮你匹配,你看它这里边儿呢,呃,比如我们先做一个加密操作啊。嗯,加密这里边你输入你的密码123456。啊,就输入这个数,然后一加密。呃,他用这个MD5算法帮你加密完以后呢,就长这样。啊,其实这个你看跟我们这边写的这个其实是一样的啊。就它那这个的话呢,嗯,比如回头你得到这样的字符串,CTRLC一下,哎,你说这个到底是谁呢?哎,T,其实我们说了已经没有对应的这个解密算法啊,所以它呢,能找到它能找到的一个原理呢。
11:03
嗯,它的一个原理其实就是帮我们。匹配啊,所以呢,他在这个他的这个后台这个数据库当中啊,存了24万亿条这个匹配的数据。啊,这个很恐怖的是吧。因为我们知道你像这个,嗯,你要写的文本的话呢,占这么多T还是挺夸张的。啊,一个图片好几个兆,但是你要写文字,你写几个兆那。还挺多的啊。诶,欧巴这个密文往这一放,然后一查询。哎,他就通过这种。那这种足够多是吧,就一个个给你匹配,然后发现跟这个长得一样啊,只能通过这样的方式算出来。嗯,基本上你要找的他应该都有啊。但是你看它这里边还有一个,比如刚才那个123456。嗯,你可以怎么着呢,我用MD5算法算出来以后。我再包一层。
12:00
是吧,再包一层呢,这不就相当于是基于他们,基于这个字符串又算了一遍,那我可以再包一层。这一层其实你就隐藏的比较深了,它其实还是123456,但是它包了三次是吧。啊,那你这个呢。再去算它,有时候这个难度就比较大了哈。当然这个123456比较简单,它应该也可以算出来。刚你说查到了。是长这个样子的。但是你得掏钱买。是吧,嗯,那你可以购买一下。来登录啊。那你就注册一下先。就麻烦了啊,哎,就这意思啊。哎,就是我们通过这个说明,就是它解密不了啊,你要能解密的话,这些这都没用了,就一个算法就搞定了。行,这是我们说的这样的几个加密算法啊,然后呢,我们需要做的,咱不是去研究这些算法了。
13:01
咱们呢,就是去用这些算法就可以了,你知道什么情况下情形下用什么样的算法就可以啊。Java呢,提供了相关的API,把这些算法呢,都给你封装好了,你直接能够去使用就OK啊。嗯,这里边儿的话呢,有一个。PDF。啊,大家呢,可以感兴趣的话可以看一看啊,那这里边儿呢,就把这个用Java去实现,那刚才说了这个DES。As,这是什么算法?哎,这是对称的啊,然后RC。啊,这是非对称的吧,啊,然后MD5啊,这两这都是单向的啊,这都是非对称的。啊,就是怎么去实现它这里边儿有这个相应的这个Java代码啊。啊,这个你不用去深研究啊,你就知道我们呢,能够去直接调用他这些操作就可以了啊。行,这有这样的一个,你可以通过这个呢,再简单的去理解一下这种加密啊,然后这样的一些概述啊。
14:04
啊下来呢,你就当看一个文章一样看看就可以。好,然后下面呢,我们就提到这两类啊,比较重要的,我们在这个金融类这个项目当中啊,需要用到一个叫RC加密,一个M第五加密啊,啊RC加密是目前已知的最安全的非对称加密。啊,注意是在非对称加密里边,它是最安全的啊。加密速度是稍微慢一些,但是安全系数比较高啊,通过Java代码,Java这个API我们可以实现的公钥加密,私钥解密啊,或者反过来私钥加密,公钥解密等等都可以啊。说实际开发当中呢,我们都有相应的工具类啊,提供了这个RC的一个U啊,不需要呢去操心算法内部是如何实现的。这里边用到了相关的一些数学公式是吧?嗯,都是数学家花了几年或者几十年的心血搞出来的,这个你就会用就行。红了函数,这你都忘了差不多是吧,就跟我们当时用那个矩阵一样。
15:08
啊,你去债在里边,他怎么做运算,你根本不用关心,你直接会用它那个POS的查查查方法就可以了啊。2C呢,这实际上是三个人名啊,三个人名的这个这个字母啊。哎,来表示的啊,就是RA啊,杀人。啊,就这意思啊,下边M第五加密。M6加密,刚才说到了,它既不是对称的,也不是非对称的,所以呢,它是不可解密的啊。嗯,它呢叫五就相当于是H5一样。啊,之前呢,还有HL4啊,所以MD5呢,是之前有MD2345啊,是一个递进的关系啊,版本的一个更新迭代。啊,不可逆的32位的一个字创啊,这不都是嘛。行,嗯,然后下边呢,是它的一个加密的一个过程啊,这个我们也不用去看了,哎,我们需要做的呢,就是直接能够使用MD5U的个工具类相关的这个方法就可以了啊,在我们那个客户端这块,我们说了哈,我们往服务器发送这个呃,密码的时候呢,是需要做一个加密的,我们这有个MD5的一个U啊,直接呢就掉了一个方法,把你要加密的这个字符串往这一放。
16:20
返回来的这个呢,就是32位的一个密纹。那就可以了啊。好,这呢,我们把这个嗯,加密啊,解密相关的这些算法呢,给大家介绍了一下,这个呢得清楚。是吧,比如说人家问到你说,诶你们公司这个相应的这个加密这块呢,是怎么做的,你说我们这块呢,就是呃,用户登录的这个信息用的是MD5加密,然后呢,关于订单的这些信息呢,都用的是2C啊非对称加密来做的。啊,是你写的吗?是不是啊,一般的话呢,如果你做p two p平台这个项目,这个算法,如果你刚去,一般不会让你写的。
17:01
啊,一般都是项目经理,然后就把这些其他工作都安排给你吧,然后最后呢,这个事儿他来做。啊,因为这个是最重要的一个事情啊,相关的跟加密相关的接口都是他来写。
我来说两句