下面我们来说一下这个密码的加密。什么叫密码的加密呢?上节课我们说过,实际上就是在数据表里边保存那个密码,不应该是铭文,比方说不应该是那个一二三四五六,而应该是一二三四五六加密之后的一个字母串。而且我们还要求 这个加密算法是不可逆的,什么意思呢?就是有那个字不串,不能反推回来以前那个密码是几,如果要能反推的话,这个加密就没有意义了。 那著名的加密算法,比方说像 md 五 sha 一,其实这个 md 五啊,在前一阶段,中国的一个女教授说这个算法是可逆的,但是 实际上他并没有把怎么是可逆的这个结论抛出来,所以说我们这个加密的话呢,我们还是用这个 md 五加密,那么 ok, 我们来看一下程序,我们如何 何时间这个 md 五加密呢?首先若木里边从数据后获取这个密码,就应该是加密之后的一个字母串吧,对吧?那对于我们而言,我们就需要知道如何把一个密码给他加密成 md 五之后的一个字母串,写下笔记哈。第一个问题, 如何把一个支付叉加密为 m 第五。第二个问题, 我们如果把这个加密为这个 md 五了,这个 ok 了,是吧?那么我们从前台传的那个密码还是一二三四五六呢?那那个怎么加密成 md 五之后的四部串呢?这个需要靠什么呀?这个就需要靠这个叫凭证 匹配器,就这个可瑞跟 sorry 车,我们需要替换当前 ram 的可瑞跟 solos max 属性, 把这个属性踢完, 为谁呢?我们看一眼啊, ctrl t 应该替换为这个什么呀?叫 md 五可瑞登搜斯 mate, 点进来我们发现他是过期的,怎么办呢?说呀,他推荐直接使用这个哈西的可瑞登搜斯 mate, 设置这个加密属性就可以了, 直接使用这个对象并设置属性 加密算法即可。 ok, 就是这样的两个步骤。那第一个怎么写的话呢?我们还不知道,不过第二个现在我们可以来试一下,对吧?我们找到我们的这个,呃,配置文件, 我们找到这个状物,这个状物 刚才我写过一遍哈,把这给他删掉,我们看如何来写他。首先写个 tout coutube sose mate 写个什么呀?写个内部并是不是克拉斯哈西 的口瑞,口瑞 dss max, 指定他的加密算法叫什么呀?哈西的就这加密算法名字麦柳 m。 第五, ok, 指定了这个评论,匹配机之后的话呢,实际上现在还没有完,为什么呀?因为这个数据库里边取的这个值 还是一个铭文呢,是吧?但是现在指定这个,呃,凭证匹配机之后的话呢,实际上他会自动的把从前台输的那个密码变成 md 五加密的。应该是这么样的一个效果,现在我们用底 bug 跑一下。为什么可以 用迪霸的跑啊?因为等一下啊,因为我当时那个用帕斯波的偷肯那个盖帕斯波的方法还打着断点呢,对吧?过来我们看看效果,随便写,走起好了,停掉了,往前 前,再往前,再往前,再往前。 ok, 我们来看这部哈,看这个时候他用的这个匹配器,他是什么了?叫哈西的可瑞登,可瑞登的 mato 进行密码的匹配,进来我们看,哎, 这个是加密之后那个吧,而这个还是那个一二三四五六是不是?那这个是怎么加密的呢?看谁啊?是不看他呀,看他点进来,我们看他是怎么加密的,再点进来,哎,实际上的话呢,使用这样的一个方式就可以了, 就是用它加密的。走起,再重新来一遍,看着哈,随便写,写个一二三四五六进来走。 ok, 我们看 加密算法是 m 第五,看到了吧,以前的密码是一二三四五六,我们这里边没有什么呀,没有颜值,没有颜值这块还有个什么东西啊?可以加密的次数 可以加密的次数,以前我没想过这个事。什么叫加密的次数呢?如果你一二三四五六仅经过一次 md 五的话,实际上那个字不串还是比较常见的。如果你要是加密 n 多次的话,他是不是更安全呢?就是加密之后那个结果,再加密,再加密,再加密 叫加密 n 多次,于是的话呢,我们指定一下这个加密的次数,你说 c 回来我指定一下这个加密的次数。在哪指定啊?配置文件里面指定是吧?这里边指定加密的次数 就是这个呗。乖溜,我可以给他指定为一千零 二十四次。好,离完成指定完成之后的话呢,我们还需要干一件事。干什么事?我得知道一二三四五六加微之后那个值是值多少啊?不就是这个吗?写个词准的算法叫 m 第五, 原密码叫一二三四五六,对吧?颜值 没有。还有一个是加密的次数,我这个里边是一千零二十四,这个是最终的结果。 走起, 看一下这个直的话呢,就是他注意这是加密一千零二十四次之后的一个结果,底 bug 在跑,哦,不是这个哈底 bug 跑,他这个时候我们看整个的这个结果是不是可以匹配的 过来,哎,哎,一二三四五六,走走再走。大家看,呃,二 二 f 四是不 ok 啊?这个手怎么了?登录就成功了?看他,哎,这就成功了,哎,这就是我们整个的一个什么叫密码的 md 五加密,但实际上这里面还有问题。有什么问题呢?我们下节课说。
粉丝759获赞2430

大家好,欢迎来到本期视频,本期视频为大家讲解的是加密解密工具类,首先上场的是计算 m 第五工具类,我们运行一下这个方法, m 第五方法的参数不仅可以是字符串,也可以是文件, 我们运行一下 sha 二五六,和 md 五一样,也是一种信息摘要算法。接下来我们讲一下对称加密解密方法。对称加密解密算法有很多,本次主要讲一下 as encrypt 这个方法就是加密过程使用的方法,运行一下好像没看到什么效果,我们刷新一下,可以看到 产生了一个新文件,打开这个新文件,可以看到文件已经被加密,那如何对这个文件进行解密呢?解密用到的是 script 方法,我们运行一下它这个运行同样不需要 在控制台输出内容,我们刷新一下打开这个文件,可以看到文件内容已经还原了,接下来我们看一下非对称加密解密算法。非对称加密解密算法有很多,本次主要介绍的是 isa 代码稍微有一些长,我们逐行看一下。首先是包的生命,然后是各种依赖类的导包导入加密相关包, 导入类似六十四相关包,导入蜜药,类型相关包导入 isa 相关包。声明一个类添加 man 方法产生蜜药,对获取撕药, 获取公药,把撕药转化为罢吐族,把公药转化为罢吐族,都转为类似六十四子符串,这样我们就可以把功药和撕药以字符串的形式保存起来,输出一下撕药,输出一下公药。根据宝 保存的自伏串,我们把公药撕药还原成具体的公药类和撕药类,根据撕药类和公药类生成对应的 rsa 对象,声明一个圆稳的字符串对象 使用公,要加密输出密文,然后用撕药解密,输出解密出来的明文,然后我们看一下密文长度,再看一下明文长度。代码终于写完了,保存一下,我们运行一下,运行结果出来了。

当鼠鼠不小心把扫帚碰倒后,天啊,这个智商看若琳如何解密。今天演示一下招 md 五工具的加解密,首先将想要加密的密码输入到其中进行加密,然后得到加密后的数据, 将加密后的数据进行解密, 我们可以看到不是一二三四五六解密显示失败, 在我们输入幺二三四五六后则未解密成功。 双击关注不迷路。

扎我打工日记十四,今天给大家分享一下加密技术。说到加密,我想大家第一时间想到的 m g 五加密,这是最常见也是大家最容易接触到的,主要用于密码或者手机号一直加密, 在数据传输过程一般不使用或者不仅仅使用 md。 五,给大家分享一下我工作中常用到的加密方式。第一种是非对称加密,非对称加密就是加密和解密不是用的同一种密药。 在非对称加密中,用来加密的密药叫公药,用来解密的密药叫私药。公药和私药都是成对生成的,公药分发给其他人用来加密,私药用来解密常用的就是 r s a 算法,第 esa 算法密要队可以通过代码和一个网站声称,至于加密算法具体代码我放到网址上了,大家可以访问查询一下三 w 百度 com。 另外一种是对称加密,对称加密就是加密解密都用同一个密药,比如 a e s des 等,我常使用的就是 a e s, 里面还有算法便宜量之类的,因为这两天和一家公司对接,他是使用的 p h p, 我一开始按照文档用 r s a 加密,他们解不了,结果他们说系统没有用文档的,然后重新给了我一个文档,用 a s 二五六 c b c 加密,后面他们还是解密,结果我叫他们 把他们加密的拿过来,我姐,结果发现他给的位数都不对,后面我自己去研究了一会,用 php 写了一个加密算法发给他们,晚上九点给我说可以了,真的无语了,终于明白为什么会有语言歧视了。

终于要写瑞吉外卖第一天实现登录和退出功能,先看效果,启动项目,输入访问地址,来到登录界面,用户名,毛头密码幺二三。登录成功,展示外卖后台, 点击退出即可注销登录,进行密码教验,密码显示错误,可以看出是动态检验密码的。看着前端界面还有其他功能,今天只实现一个登录和退出功能, 他的逻辑就是接收前端传来的参数,然后进行 m b 五加密处理,对数据库进行密码比对,如果密码一致,进行员工状态, 员工状态式启用,则将员工页放入筛审中,返回成功。两个教练有一个为 boss 登录则失败。登录成功后,可以展示 后台界面,我们在用户名位置点击退出按钮,他就会删除存储在 fashion 中的员工,退回到登录界面,像 job 大神又迈进一步。


今天有同学在群里问一个外国应用程序在内网 nice 是授权怎么防止代码反变异破解?基本上交往不能图纸编反变异代码,但是呢,咱们可以对他进行混淆 神的加瓦混淆代码是没法完全避免被破解的啊。这个时候我们一般可以用收集机器的网卡, cpu, 耐存式的试用日期,安装的日期,将这些信息收集起来啊,然后进行加密, 存到本地验证的时候使用加瓦吊用 c 加加的程序进行解密操作,然后最好也做一个自动联网服务器端结合的功能。然后关于代码混销,有一些商用, 你有一些免费的,比如说这个 pro god, 基本上加瓦代码混淆加上本地路径之家解密就能难住百分之九十九以上的人, 公外百分之一的人有能力分析汇编和物技制,这些基本上要发挥很大的力气就除非破解后有很大的力,不然的话是不会做的。 混淆加密这事情跟你保护的东西有关系,你保护的价值越高,你可以使用的成本就会越大。

嗯,大家好。嗯,今天我们一起来学习一下 java 加密与解密的意思。今天我们学习第一讲消息 jail 的算法。 嗯,首先我们来看一下 java 安全领域的组成部分。嗯, java 安全领域基本有四部分组成。呃,第一部分 jca。 呃,他是提供了基本的加密框架,比如证书、数字签名、消息摘要和这个密要队产生器。呃。第二部分就是 j c e。 gcg, 就是在 gc 的基础上做了一些扩展,提供了各种加密算法、消息摘要算法和密要管理等功能。 我们所了解的 d s a e s r s e d s e 算法,就就是通过 j c e 来提供的 fun carter。 j c e。 呃,我们经常会用到。 第三部分 j s s e。 嗯,它提供了 g s r s s l 的驾驭功能。 呃,是在网络传输过程中啊,信息会经过多个整体, 然后最终传送给接收者。呃,容易在这个网络恋路上产生这个监听, 这是很不安全的。然后确保网络安通信安全的服务就是由 g s l e 来提供的。 g a s。 它是提供了在 java 平台上进行用户身份鉴别的。 好,我们来看一下这个消息摘掉算法。 嗯,所以这样算法就称为三六算法。他这个计算是单项, 通常用来验证数据的完整性,是数字签名算法的核心算法。 数字签名的算法就是变相的使用了摘药算法,获得这个摘药值。 嗯,验证操作则是验证其数字指纹是否相符。如果呢,我们要是你看这个山东大学王小云啊,他不是那个使用碰撞算法啊,能破解 m t 五和杀犯算法。 然后那个如果他能把这个碰撞出来,那么就可以使这个数字签名在理论上被伪造。 嗯。 c 加算法主要有 m d 沙,还有 m 呃 mark 这这这几种。 嗯。然后我们看一下这消息摘要算法的应用。我写了三个例子。第一个是 m d 五,通过这两行 代码,我们就可以得到一个 m t 五的一个摘耀值。 第二, s m 三,我们可以通过这个 bondcottle, 通过三行大码做一个 s m 三的一个摘。小萨 h mar m d 五。呃 h mar m d 五。这 a m h mar 这个 mar 算法是那个机密要的,需要摘掉算法。我们通过这几行代码可以做一个 h mark m d 五的一个摘掉算法。 我们今天的学习就到这里。呃。

哈喽,亲爱的小朋友们和大朋友们,我是菲菲,今天我们晚上的直播课呢,讲了一个随机数,然后呢讲了一个极为 id, 然后还讲了一个 md 五的值。那么有一部分内容呢,是我们录播课程当中,就是你们看到我的主页面当中是没有讲过的,就是这个 d e s 这一块, d e s 呢,它是通过一个密要和项链,然后呢把一个明文的内容加密成一个密文, 然后同样他可以使用蜜药和项链把一个蜜纹解密成明文,所以 m 第五它是有去无回的,是单向的,对吧?但是第一 s 呢,可以转换成蜜纹,又可以转换成明纹,那么这个东西呢,我已经发到群里面去了,你们可以去群里面去下载一下。然后呢我们大概来看 一下他的泪在哪里?他的泪在 comment 里面有一个 encryptions 这样一个类,点开之后呢里面有这两个方法啊,除了有 md 五的两个方法,然后呢还有两个 des 的方法,一个是加密的方法,然后一个是这个 解密的方法。那么这两个东西有什么用呢?我们把字体调大一点, 就是这两个东西有什么用呢?以前我们讲的去写一个字母串,数据库连接字母串是吧?我们如果写在这个程序里面,这个字母串就写死了,那么你如果想要 去更改,比如说服务器,服务器名称变了,或者服务器 ip 地址变了,你都得去修改原代码 吧。那么我们也讲过了,为了去避免这个问题呢,我们会把它写到这个 app, 可能是一个这个里面 去 app ctrl 里面去写上这样一个文件,要写上这么一个字无串,是吧?那么你的字无串就这样名文写在这里呢,你可以看见,别人也可以去看见啊,所以你的数据就不安全,那怎么办呢?我们就把这个字无串给它拿出来, 放到这个铭文这边,然后使用一个蜜药和项链。项目量呢,主要是防破解的,就是说你同样的字符,可能你加密完了之后通过这个项链呢,加密完了之后, 它的密纹也是不一样的,所以它是防破解的。那么对于密药和项链它有什么要求呢?呃,就一个要求, 他必须是子不算,而且必须是八位。我们来试一下,我先数数字,一二三四五六七八, 一二三四五六七八,随便数啊。加密加密之后就是这个东西,你们拿到的就是这个东西啊,拿到这个东西之后,你就可以舔到这边来了,等到想用的时候把它解密就行了,对吧? 好,有人说,那这个东西真的可以解密吗?来看一下啊,我把这个铭文给他拿掉,解密是不是有啊? 是不是就这个东西啊?所以说他的使用场景主要是取决于你的这个铭文和密文需不需要相互转换。那么这个密要和项链他有什么要求呢?我们在直播课的时候,那时候我我也没搞清楚,所以那时候也出错了啊,也出错了,刚开始演示的时候还好,然后 随便填的时候出错,那就一个要求,他必须是字不串,还有呢长度是八,你写其他东西都可以,比如说呃,字不串,一二三四五六七八, 然后项链也可以,一二三四五六七八。来嘉宾你得到的四撸串是吧?就是一个蜜吻, 所以这边只要是八位就行了,你哪怕是一二三四五六七八,然后下面呢一二三四五六七八, 你写成这样加密也是可以的,也就说这边只要填八个字符就可以了,你们就可以拿到密文啊。 然后呢有了项链跟蜜药呢,还有蜜纹呢,就可以把它转换成铭文使用这个简历啊就会讲就可以转换成铭文,那么蜜药和项链你必须要记得,如果你自己把蜜药和项链都忘记了,你这个字不穿就捡不回去了 好吗?那这节课呢,我们就是把直播课里面讲到,但是我们录播课里面有每讲的这个第一 s 加密简历拿出来给大家讲一下,放到我们的境界内容里面。好吧,大家有空去看一下,那这节课就到这里拜拜。

大家好,本节课介绍一下 m d 五 d e s 三 d e s n e s s m 等加密算法。 加密算法有很多种,其中 m d 五它是一个不可逆的加密算法,那这个算法呢,我们用的非常普遍, d e s 是一个经典的对称加密算法, 但是缺陷明显及五十六位的密药安全性不足,已被证实可以在短时间内破解。 那么这样的话,这个 ds 算法呢,就是不安全的,所以我们在新的项目里面呢啊,就不要使用了。 三 ds, 三 ds 呢是为了解决 ds 安全性问题推出的三 ds 算法。三 ds 算法是使用了三条五十六位的密药, 对数据进行三次加密。三 d s 是 d s 向 a e s 过度的加密算法,它的处理速度不高,所以后来又推出了 a e s 加密算法, a a e s 叫三 d e s 速度更快,安全性更高。 那么 d e s 三 d e s a e s 都是可逆的加密算法,就是密纹由密,要解密以后可以还原为加密前的内容,加密前的铭文。 sm 系列呢? sm 系列是国产的加密算法,这这里面呢大部分也是可逆的,可逆的加密算法。 那么我们在一些呃安全性要求等级比较高的项目里面呢,经常被要求使用 sm 加密, 那关于 aes 和 sm 的加密算法以后再介绍。本节课只要介绍 md5ds 和三 ds 的使用, 那么这个工这个工程里面 password 是 md5 的加密算法,里面提供了 md5 income pass 呃 incode passing 口顶,第一个是不带自负极的,第二个是指定自负极进行加密, 那么第二个是使用呃频率是非常高的 ds uts 是 ds 的加密,包括英扣子 d code, 英扣子半 iv, dcod 半 iv, 那么上面两个,呃,上面两个是 iv 是末日 认了,默认了八位,八位数字啊,这个这上又原来是写死的,这这样的话写死了。我们这两个基本上就不用,只要用下面这两个音扣的八 lv 就是这个 lv 呢,可以指定还有地扣的八 lv, 一个是加密解密, 另外 three d s, 三 d s 加密提供了 in incrive, the mode, decry mode, 还有 in call 的,呃,抵扣的。 那么樱花帽子和这块帽子,这里面是一个有小很多步骤,下面这两个方法是最上面这两个方法的一个封装 要用起来更简单一些,所以一般情况下我们就用下面这两个方法。那现在我们进入程序看一下这些类和方法。首先 我们看一下 password, password 这里面有个 md5 m d 五鹰扣子 pass, 这个是不带字不及的,那中间掉了 m message djs, 这里面有一个坏的 to 十六间至转换的一个处理过程啊, 那我们可以看一下这个下面是代词不及的,代词不及的话 bat to 设立禁止转换的时候呢?这里面有一个 get bice 啊,这个上面我们可以看一下它的差别,这个 get bice 指定的一个自负极啊,就是这么一个差别。 那么我们演示一下,现在是这个铭文是一二三五六,你好带汉字,那么带汉字和带汉字的情况下,用 带营口顶和不带营口顶的加密的结果肯定是不一样的, 这两个加密结果是不一样的,那么下面我们再看一下 d e s u t s d s u t s。 那么上面这个艾薇呢?是已经这个是对,前面两个,这个方法是在这写死的,看看这个艾薇是写死的,所以我们这个 啊,我们这个就是这两个话,那就没有下面这两个安全的,因为这个这个 iv 是传入进去的,这个 iv 是传入进去, 那么下面我们演示一下,这个是蜜药,那么我测理一下,这个蜜药呢,他至少是二十四 位啊,然后是三十二位,就是二十四,二十五位,二十六位都不行,这个是长度是有要求的, 再超过三十位呢,是多少位呢?肯定也有,也有可以用的位数,比如说五十六位,六十四位,这我就没具体吃,反正这个算法呢,我们只了解一下,因为颜色后面就不怎么用了。嗯, 这个是鹰扣的,地扣的,这个是不带 lv 的,下面两个是带 lv 的,那么这个 lv 呢?他是必须是华为的,必须是华为,我们演示一下 啊,这个是两两种,两种不同的 iv 找到的逆纹,不一样 的名馆是一样的。好,下面我们再看一下啊。 three d s 就是三 d s 的加密,三 d s 的加密呢?嗯,这里面就是具体的有 increvermode, 这里面就比较复杂啊,这里面还 decred mode, 这是中间处理方法,那么这两个是封装好的,封装好的就吊,用起来就比较简单了,就不用用这么多的步骤,如果是不封装的话,就看这里面是没有封装的,吊用。 那么现在呢,我们看一下,首先呢有一个铭文,康坦,这是一个真正格式的手串,下面 好,我们进行加密,加密需要几个参数,第一个是用户名啊,张三啊,我们可以啊,这个也空,空了也 可以啊,下面是密药,密药这个长度可能也是有要求的啊,然后这个我们可以数一数啊,这个我先他骂他一下, 现在运行一下 啊,这个是二百一十六位长度。 那么看一下啊,零扣的插座参数是正文啊,就是要加密的正文啊,用户名,这个可以随便定义啊,下面是一个密要, 然后我们解密,解密的过程是将加密后的密纹传进去,然后还是用同样的用户名和密药来解密,得到的一个抵扣的,我们看一下,刚才是 我们看一下,这是解密的结构 啊,这个是解密回来的,这个就跟我们的这个铭文是一样的。好,那这一节课就介绍到这里,谢谢大家。

大家好,今天我们讲一下这个使用 fm 第五加密啊,这个 m 第五, 当然我们也应可能是应该是读 md five 吧,啊,我们这里呢就读 md 五啊, 我们之前呢在讲到我们这个登录的学生管理系统登录的你,呃时候啊,我们讲到我们其实一般情况下呢,我们哎不会把这个密码呀,直接存他的密码存到数据库里面,通常都是通过这个 md 五加密之后啊再保存, 哎,哎,从理论上来说了,这个 md 五加密啊,他是不能够被哎 直接破解的,当然我们哎也有一些 md 五在线解密的一个网站啊,他也是通过他,反正就是说我们输入密文之后啊,有一些比较简单的密码了,可以直接在这里面查到。呃, 我们这里呢就不展开讲了啊,主要是讲我们怎么把这个密码通过 md 五加密之后啊保存到数据库以及我们登录的时候呢来验证他,好,现在我们来修改我们这个代码。 那么呢,我们现在把这个密码啊,我们之前是直接保存的填的这个密码保存到数据库里面的,我们现在怎么把它加密呢?首先呢,我们来创建一个 mmd 五的一个对象, 来,我们选下面这个啊,然后呢我们把它这个密码,哎这个填的密码呀,把它转换成自觉数字结数组,哎,这就是一个字结数组等于 是吧,什么呢?是把这个哎密码, 当然我们这个 mmd 五这个要实力化的时候啊,哎,他会,哎,如果 我说我们的那个 vs 版本比较低了,我们就要先哎引用这一个啊,就先引用这一个,我们使用的这个二零二二版本呢,当我们在下面写之后啊,他就会自动下面,哎,写到这个之后啊,他就会自动添加这个饮用,不需要我们自己去管, ok, 那么呢我们 mmd 五加密之后啊,他是也是会得到一个自结束组合, 那么写的就是这个啊, 好,那么呢他就是给他加密之后啊,哎,返回到这个字节数组里面呢,我们再把这个字节数组啊,放到这个 放到这个支付串里面去, 把它转换成那个十六镜子啊, 这里面写个 坚持。好,现在呢我们就把这个相当于啊,我们就把这个,呃,原来是这样一个支付串密码的,这个支付串现在转成这个了,转成这个之后呢,我们现在啊,那么我们这里呢这个参数啊, 直接就使用这个这个串。好,我们再来运行一下看看啊, 点注册,这里有个张三,我们再来个女士 密码,我们依然是写一个一二三四五六。好,其他的我们就不填了啊,这个填一下 提交哦,这里面呢我们这个加密之后啊,哎,他这个是他就变成一个三十二个宽度的了啊,那么我们以前的密码呢是多少呢? 哎,是十一他就保存不下了,保存不下了,我们要把这个密码的宽度啊,给他改一下,改成三十二 啊,要这里面要设置一下啊, 好,我们再来再提交一下。好,注册成功,那么呢我们看一下这个数据库里面。 好,那么这个密码呢,这个就是经过加密了的加密的,呃,像我们试一下啊,在这个在线解密, 哎,他就他这个网站可以简单的密码是可以把它呃解密出来,复杂复杂的可能就不是太好搞了啊,我们再重新注册一个, 我们写个比较复杂一点的密码啊, a bc at b, 三五七九 提交好,注册成功啊,我们再来看一下,好,这个密码我们看, 那么他就通过,哎,比较复杂的密码,那么哎他可能就要通过付费才能解密啊,嗯,那么呢,我们现在啊把这个密码哎通过加密之后啊,保存到这个数据库里面的, 那么我们登录的时候怎么办呢?登录的时候啊,就是说当用户输入密码之后啊,哎,我们是也把它输入密码进行一个加密,然后再把两个加密之后的那个 支付串进行比较,如果说这两个支付串相等的话,就,哎说明他的密码是一样的,否则呢他的密码哎就不是不认为是一样的,那么这个里面呢,因为我们哎 可能需要再次用到他这一些代码,我们可以把它写到我们的这个哎,这个公共的内里面了,我们给他 专门写一个方法, 没问题, 那么这个我们肯定,哎不能用。第五啊,把它改一下,它需要的是一个制服串啊, 那么呢我们把这个代码呀复制过来放到这里, 我们这个函数的意思就是什么呢?就是把这个传进来的制服串把它加密,然后返回 what s on the unit 汉子打上去了, 好,我们这个呢就是咱们给他加密下面这个参数呢,就是要加密的支付串。好,那么我们这里的代码呢,就给他 改一下,哎,这段代码就都不要了,直接调用那个函数就可以了啊,那么这里就是 哎,这段代码大家能理解吧,就是我们把在那个里面呢写了一个哎这个函数,然后我们直接在这里使用就可以了。好,现在我们在用户登录的界面,我们登录的界面我们看一下啊, 那么我们之前呢是直接哎把这个密码对他进行比较,那么呢我们现在啊 就不能这么写了,我们可以把他的密码直接给他读出来啊。 好,我们这里呢直接写那个直接把他的密码给他读出来, 读出来了如果啊,嗯把读出来的值了保存到一个 累,你们 如果 这个累了是等于,那你就提示 没有找到用户为 且内洗别内洗内别为这个的记录, 如果说没有找到呢,我们找到这个符合条件的记录 就直接提示没有,如果找到了啊,如果找到了哎,他就退出来,那么后面的代码就找到了才能执行,找到了呢,我们就把他哎进行 mdf, 那个 md 给他进行加密啊, 加密之后呢,如果说是不等于啊,不等于输入的这个密码, 那么呢就提示密码 立马错误, 否则就表示哎,否则呢他的密码就是正确的,那么就登录成功,把窗口关掉, 我们现在运行一下。 好,那么我们看输女士啊,我们之前输的密码是一二三四五六四五六,我们输个一二三, 用户学生登录,那么他就会提示密码错误,看到没有,如果说我们哎找不到这一个 人的时候,他就提示没有找到用户为你是一切类别为学生的记录啊,我们说一二三四五六,那么呢哦,这个 密码 密码我们要把它一般是不直接显示出来的啊,刚才呢有一个什么问题呢?哎,我们这前面给他 啊,我们这个代码啊,注意我们这个代码写的有点问题,我们现在这个从数据库读出来的值啊,是经过加密了的, 我们现在不是把这个加密,而是要把我们哎输入的密码给他加密,哎,然后与数据库读出来的值进行对比。好,我们看一下这一句啊,这个是数据库读出来的值, 然后呢这个呢就是我们输入的值把它进行加密,看他们两个是不是相等。 呃,这个这个里面呢,我们密码啊还要给他改一下,这里面输入密码 他是我的恰,哎,改成一个新号,这样呢,我们输入密码的时候啊,就显示为新号,这个属性啊,你再来一下, 好,我们现在输入你是密码一二三,哎,我们实际密码是一二三四五六,提示密码错误,我们输一二三四五六, 哎,登录成功。好,这这个就是我们讲的啊,把这个密码加密之后, md 五加密之后啊保存到数据库, 然后呢我们登录的时候呢,通过对这个加密之后的支付串进行比较来看他的密码是不是正确。那今天这个呢,我们就讲到这里啊。

哎,先生, m d 五和 a e s 和 r s a 这种情况有什么区别啊?其实他们都是加密算法。 m d 五呢,是一种不可逆的加密算法,比如说用户登录的密码经过 m d 五加密之后呢,存储在服务器上也是加密之后的字符串, 夫妻端也是不可以解密的,所以 m d 五一般用来保证文件的正确性,防止植入了木马或者病毒。 而 as 和 isa 是另外一种可解力的加密方式,它分为两种,这是我上次和你说的对称加密和非对称加密。 as 呢,是对称加密算法, isa 呢,是非对称加密算法。

灵感数据怎么加?解密和传输?这是一个工作四年的粉丝啊,去蚂蚁金服的第一面遇到了面试真题,今天正好有空给大家分析一下这个问题的底层逻辑,以及面试的时候的一个回答技巧。文字版本的回答我整理到了一个五十万字的面试文档,里面有需要的小伙伴可以在我的评论区的置顶中去领取。 这是一个典型的信息安全性问题,面试官主要通过这个问题呢去测试你对于安全方面的了解程度,以及你在实际项目中如何保护敏感数据的能力。候选人可以通过加密算法的选择、加密方案的设计、数据传输的安全性等方面来进行一个分析。下面呢我们来看一下这个问题的回答。 常见的加密算法呢有两种,一种是对称加密,就是通信双方共享同一个密量。另一种是非对称加密,也就是通过工药 和撕药两种密药分别进行加密和解密。对于客户端和服务端之间的数据传输,可以采用非对称加密的方式来实现。首先客户端用提前分配好的工药对数据加密,然后再把密文传输到服务器端,服务器端通过密药来解密。 常见的飞顿加密算法呢,有 r s a 和 d s a 两种,除了加密算法以外,还需要去通过安全的通信协议来进行传输,这里呢可以采用 hdbs 协议。 最后我们还需要确保公药和私药存储的安全性,防止被第三方拿到密药以后能够破解内容。以上就是我的理解。

哈喽,大家好,我是程序员鱼皮,最近连续干了几个大爷,终于把佳话学习路线干出来了。虽然现在网上学习编程的资料很多,但貌似有一点太多了,而且人人都说自己家的最好, 可以导致小伙伴们又不知道怎么选择了,那我的这份路线呢?希望给大家做做减法,来这一条龙服务,把加瓦程序员要学的知识点,推荐的最佳学习资源,其他学习资料工具,还有美的知识为什么要学?他计划要学习的时间 都给大家安排的明明白白了,不用纠结和迷茫了,直接无脑跟着学就行了。整份路线所有的资源我也都提供了文档和网站,大家不用自己挨个去搜,直接在微信搜索我的公众号,程序员鱼皮,关注后回复加外路线就能领取了。那么问题来了,我用自 自己的头发节省了大家的时间,难道不值得一个三连吗?那下面我带大家来导读一下,虽然这个路线啊看起来非常的长, 也是非常的唬人啊,但没关系,卷起来就不长了。我也是把整个家袜学习从入门到入土分为了八个阶段,然后第一个阶段呢,就是加袜入门, 这个阶段的目标就是培养兴趣,快速上手。在学佳话前,我们先要做一些准备,比如说准备一款在线随时随地写代码的工具,那我们可以用菜鸟工具随写随运行。 第二呢,就是要准备一款记笔记的软件,因为学编程的时候多去积累才能事半功倍。那我这里推荐的软件就是 topry, 配合这种马车档语法来编写笔记,我的这个文档就是用他们来写的,非常的方便。 第三就是要记住,想学好编程,不要去背代码,要多写代码。第四呢,给大家一些挑选视频教程找资料的小技巧, 然后开始学习佳话基础知识,那这个知识点也是非常的多,刚开始熟悉一下这个基础语法,然后佳话的话一定要重点去了解什么是面向对象,那刚开始学佳话的时候,一定要持续学习,最好一天都不要中断, 那我建议一定要跟着书上或者视频中的例子,跟着敲代码,并且要完成课后练习。最推荐的是韩顺平老师的零基础三十天学会佳话视频教程, 这个系列视频呢,把佳话知识点讲的非常的细,也比较通俗易懂,还是蛮适合新手入门的。然后是佳话吧,可以帮助我们正招笑的去书写代码,刚开始学佳话吧,会用就行了,如果你有时间可以去 可以看一下宋红汤老师加瓦入门教程中的加瓦八部分,也可以直接在菜鸟教程中去练习。再给大家推荐一个项目,收集了很多有用的加瓦八小片段,进入阶段。二,巩固基础。首先是巩固加瓦基础, 我建议大家直接去阅读加瓦核心技术卷一这本书,看这本书的同时呢,我建议大家去这只牛课上刷一刷这些选择题,只有通过题目才能检测出你的基础到底好不好。然后是数据结构和算法的学习,每天建议用加瓦来做两三道算法题目, 刚开始看不懂算法很正常。我建议大家直接去刷 litube 上的教程,他是有教程,有题目,有题解,一条龙服务。之前我给大家分享过自己刷了一千多道算法题的心得,大家刷算法前可以先看一下这篇文章,除了算法数据结构外 呢,这个计算机网络啊,操作系统也都是程序员的基础,刚开始学习这些东西啊,肯定会比较枯燥,所以呢,我的建议是大家可以先看一些有趣的书籍,比如说图解 app 啊,把他们当车外书看,不要占用你的主线学习时间, 巩固基础可能要花一个月的时间啊,当你读完加瓦核心技术卷一,并且不用查文档,也能熟练的使用加瓦来做算法题目时,你就可以接着往下了。 第三阶段是企业开发基础,那这个阶段我们就是要面向薪资编程了,数据库其实花个七天左右去入着门就好了。 刚开始了解一下买 cto 怎么搭建, ctrl 渔具,怎么编写,逐渐培养自己的设计能力就好了。要刚开始的话,跟着老杜的买 cto 入门基础视频去学习就好了,也可以使用 ctrl 自学网来练。 接下来呢,我们要进入漫长的开发框架学习阶段,那我们就从这个加瓦外部开始,先去试着开发一个简单的加瓦后台,然后想办法提升开发的效率。就要去学这个 supreme 五,学这个 summvc 买白提词,还有帮助加瓦成为一代神的 surpramp 框架。 那我是建议大家在学开发窗架的过程中,尽量去看同一家的视频教程,那这里我推荐上锥鼓,他们讲的非常的全面,而且课后的资料也非常的详尽, 我自己当时复习加瓦用的就是他家的教程,然后下面是开发规范,那学这个主要是为了让大家保命的,以后不要因为写拉代码而被同事打死。那规范的话,我建议大家直接去看这个阿里巴巴加瓦开发手册就好了。然后下面是这个地特,这个也是现在企业中 必不可少的工具,会用就行,不用了解太多的原理。这里你可以选择看视频,花几个小时快速入门,然后这台还有一个好兄弟叫这踏步,就是我们可以用这个把代码上传到这踏步去进行管理。 这里强烈推荐大家一本书叫 j 踏步漫游指南,可以在线观看。然后是 liniautic, 现在企业中很多的前后台项目都是在 linuchat 服务器上的,所以我们一定是要去熟悉 linniautis 的操作,还有脚本的编写。 学拎六车 c 是要多动手实践啊,建议大家自己去购买一台云服务器,或者在本地搭建虚拟机环境,首敲命令,安装软件,部署服务,熟悉整个项目从零到一的上线流程。 这里的话推荐大家韩老师的拎六撤四视频教程,在这里也给大家推荐了几个在线免费的拎六撤四实验环境,不用购买云服务器和 本地达环境,也可以在线练习,那如果命令忘记了,也可以直接在这些工具下面去搜索。然后是前端基础,那这里的话了解前端基础三件套顶多在学着 vivo 啊,这就完全足够了。那大家可以参考我头发还很茂盛时干出来的前端学习路线。 下一个阶段呢,我们要学习更多召集的企业开发技术,解决实际的问题。那首先我建议大家来一场思想上的洗礼,学习一下设计模式,了解一下软件开发中一类问题的通用解决方法。 学好设计模式能让你写出更好的代码,也才能读懂后面的更多的框架源吗?主要是三大模式。学设计模式的难点呢,就是你要了解每个设计模式他对应的应用场景,强烈给大家推荐这本用加瓦语言来实现的图解设计模式。然后呢,因为企业中的需求是五花八门的,所以我们要学 学习各种这样的中间键来应对复杂的需求,比较常见的是 redis 缓存, reddam two 消息队列,还有 ngx 网关。 先要能独立使用这些中间键,了解他们的应用场景。然后呢,你再试着去用加瓦来操作这些中间键,把中间键和你的项目结合起来。 这里依然推荐大家去看上归主和老鱼皮的系列教程,这里还给大家推荐两个可以在线练习的使用工具,大家学完一门之后可以再去学别的,对他们进行一个对比。然后是这个让我个人很头疼的 nite 网络编程啊,那 nite 就是一个高性能的网络编程框架, 就先以能动手做着聊天室为目标吧,真要学的话看一下视频教程就好了。然后我们进入一个崭新的世界,微服务,先从这个简单的 rpc 框架 w 学起,然后进入微服务的学习呢,这里就 主要学习两大窗架,一个是 surpranchlo 的,还有就是国人之光, surprangela, 阿里巴巴,那我们后台开发主要的工作可能就是写接口,因此呢,也要学一下这个接口管理。大家不要看这一章的内容多,但其实学起来并没有那么的难。 嘿,你就看完这两套视频教程,基本就 ok 了。上追捕的这个 surprise 教程,我觉得真的是讲到我心里去了,他直接把国外和国内的技术结合在一起,对比着去讲,也能引发大家众多的思考。 下面要学一下这个容器技术,每个小的服务呢,相互隔离,独立部署,方便移植,提高安全性的同时呢,提高拆发和维护效率。 能自己写着刀串 fal, 把你的项目用刀串来部署,然后再了解一下这把 s 的概念,基本就够了。这里我推荐床神老师的刀串教程,没有太多的废话,也比较通俗易懂,也建议大 大家去看一下刀串从入门到实践这本在线电子书,有一些最佳实践,非常值得学习。这一章的最后呢,我们要了解什么是 c icd, 可以帮助我们提高整个项目从开发到上线的效率,也是现在个个大公司都在用的主流技术。 cd 的话,其实你主要了解一下他的概念就够了,可以看一下床神老师的十分钟理解,企业级带 box, 我也建议大家去实战一下这样的平台来部署自己的项目。像这个微信云托转,我已经直播给大家演示过了,后面会给大家出教程,大家可以来试一下。 然后第五阶段就没什么好讲的了,就我们也学了那么多技术,是吧,要把他们综合起来啊,自己从零到一,独立的开发和上线一个全面的有特色的,可以写进个人简历的项目。这里呢,给大家推荐了八个视频教程,大家选择一到两个看就行了,还给大家分享了五十套原码 管理系统,开发平台,其他等等等等,还是很值得投币的阶段。六呢,就是一些加了高级的知识,比如说学习这个并发编程视频的话,看上追主的并发编程教程就行了,然后比较新,而且比较短,比较精华。那这里我还是建议大家去阅读这两本书, 一本侧重实战,一本侧重思想。接下来呢是 jvm 加瓦虚拟机,想要深入了解加瓦,了解他跨平台的奥秘,这个是一定要学的,而且面试的时候老爱问, 那这些知识都是重点,其中这位 m 的性能调优是重中之重,那这位 m 的学习可能会略显枯燥,我还是建议大家先去看一些视频教程,刚开始去看上归主宋老师的视频就好了,讲的真的是相当全面,那如果时间不多的话,也可以直接去看床神的这位 m 入门。有时间的话,还是建议大家去 阅读之本,经典中的经典啊,深入理解加瓦虚拟机,不可多得的 gvm 学习神书啊啊,就是有点费头发。 学了一些底层之后呢,我们也要关注上层,这个加重设计能力是我们加了后端程序员最最最重要的能力之一,设计的知识点也非常的多,像这个分布式啊,我靠,还有各种各样的企业技术。 这节我倒没有给大家推荐教程,因为你学到这里的时候,已经是一个成熟的程序员了,建议大家多去看一些文章,多去看一些文档,来达到更好的深入学习的效果。 下一个阶段呢,目标很简单,就是找到好的工作,给大家几点建议,首先是尽早做规划,然后呢雕琢一份优秀的简历,可以看一下我之前的原创文章,然后就是多读面经,好好复习,多参与面试,持续的复盘和 总结。那这里也是给大家推荐了非常非常多的资源,从一些大厂的岗位要求来了解加瓦程序员要具备的技术,看一看我个人学习进大厂的经历,看一些加瓦的知识总结,多阅读一些面筋,看一些视频等等。 最后一个阶段呢,就是要持续学习,那我这里也给了大家很多的学习方向,比如说深入学习原码,了解底层的原理,学习更多的数据库中间键,分布式技术, 学习一些面向业务的解决方案,提升自己的加重能力,甚至学习加瓦的一个主流方向,大数据,这又是另一场秃头之旅了。然后这里呢,给大家推荐了很多加瓦的好的资源,还有一些大厂的技术博特, ok, 这就是整个加瓦学习路线,制作制的路线,真的是非常非常不容易,如果大家觉得满意,还请务必三连支持一下,那这种文档依然可以在我的公众号获取,我是鱼皮持续分享编程章货的程序员,欢迎大家关注我,我们下期再见!

第十六题跟以往的题目还是有一些区别的,我们先看一下题, flag 还是在 come figue 的 php 中,但是他 getc gettc 之后有一个易服,一句易服 l 子,如果 他的 md 五值 ctf 寿加变量 c 等于他,那么就输出 flag, 所以说我们需要 md 五解密,解出他的内容是什么。 我试了几个 md 五都不好使,还是用回他们之前最常用的让你无意的 md 五,我们把它 解腻,解得的是 ctf 瘦三十六 d。 那我们再看一下题,题目写的是 ctf 瘦加他,那么我们可以确定一辆 c 就是三十六 d, 那么我们可以直接艾特谁,是吧?那我们直接 问号 c 等于三十六 d, 那么 flag 就出来了,那么这道题就做完了,看看还是那一度怎么样。

下边呢,我们来说一下 c 轴的认证,所谓认证说白了就是登录,那么如何来做 c 轴的认证呢? 我们首先来看一下我们在讲 hellowor 的时候这个程序,我们还记得这个程序里边有一个认证吧,我们首先把这个过程大致了看一下,然后翻我们看第一步呢,实际上先需要来获取当前的三看到了吧,然后 我们需要来判定当前的三部这个是不是已经被认证了,说白了是不是已经登录了,如果没登录的话,需要来创建一个优德内蒙帕斯托托肯对象, 创业这个对象的时候呢,需要传入优的内幕跟帕斯沃了,下一步我们需要来调用 double max log 方法 执行登录, ok, 从 helloword 里边看到这个代码就这么多, 后边呢,我们注意到这块,我去执行这个捞根运方法传入这个优的内蒙帕斯波托盘,这个里边这个用户名额密码应该是我们从前端获取的吧,比方说表单一点提交有个用户名额密码,那么后边怎么办? 后边我肯定还需要去获取数据库里边对应的记录版,然后的话呢去比那个密码,对不对?是吧?那么如何从数据库里边来获取对应的记录呢? 哎,这里边没有给出,我们还记得我们前面讲那个架构的时候,咱说过如果需要访问 c 楼的安全数据的话,需要用什么呀?需要用这个肉吗?是不是?所以说下一步就是使用这个 用获取数据表里边对应的记录。最后一步去比密码,比密码呢,是由 siri 帮我们完成的,后边我们会通过看原代码的方式去看如何去比那个比的那个密码好吧,基本流程就是这样。下边的话呢,我们来写一个这个笔记, 把这个流程再捋一遍。 先需要来获取当前的 第二步,我们需要来教验当前这个三不这个的是不是已经 被认证了,说白了就是是不是已经登录了,对吧? 这是第二步,那是什么呀?叫吊用。 第三步,若没有被认证,则就干什么?把用户名和密码封装为优德内蒙帕斯布的脱啃对象 好了,这里边呢,实际上是有些小问题。什么问题啊?对于我们这个 bs 的项目,那么我们如何去获取这个用户名和密码呢?那这里我们来写一下哈,实际上在这个之前先需要干什么呀?创建一个 表单 页面是吧?你用户名额密码一定是从表单页面获取的,然后点击提交。提到哪呢?把请求,把请求提交到 supremmvc 的的什么呀?的, 然后呢来获取用户名和密码。那实际上我们第一步,第二步,第三步,这个代码都是在憨豆里边完成的吧。好了, 在下边第四步,第四步,我们即将来调用这个方法叫执行 根部 调。什么方法呀?调用 三不给他的漏病方法,是不是 先用这个方法来执行登录传的这个对象是什么呢?是一个奥迪 k 神涛肯,大家注意到啊,这是一个接口, 那么说明什么?说明这个优德内帕斯布的头啃应该是我们这个奥特曼 k 身头啃的一个实现类,对吧? 第五步,那对于我们而言,我们需要去自定义重 方法,然后呢从数据库中获取对应的记录, 要怎么样返回给 siro? 第六步返回给 siro。 这块我们需要注意一下,那我们到底如何来创建这个自定义的肉呢? 如何来创建这个斯定义的状目呢?我们实际上这里边我们干什么?我们是不是写过这样的一个状况, ctrl t 这个状目实际上是一个接口,我们真正用的是谁呢?真正用的是他,那如果仅是认证的话,用这个也可以。 这个里边有一个抽象方法,我们看一下这方法叫啥?哈,我打开大纲,奥特曼最后一个方法,这方法实际上就是这个方法后配,哦,我们先说这个类,是吧? 继承这个类,实现这个方法就可以了。 使用哪个方法呢?使用另一个方法。 好,同学问,是吧?老师为什么是去呃,实现这个类去实现这个方法呢?一会的话呢,我们用圆码的方式去走 一下,好吧,好,最后一步有一种 完成对密码的比对, ok, 这就是我们整个的流程。那下边的话呢, 有一个小问题,是吧?大家可能会问,哎,为什么需要去继承这个类去实现这个方法呢?我们现在的话呢,通过原码看一下,我们在这个配个萨子里边往后走吧,落地往后走。大家看啊,这块其实很有意思,大家看, 在这个里面我们调的是三不这个的老规矩方法,咱讲过说这应用程序里边啊,我们针对的那个类都是三个字,他是个门面吗?是吧?点进来后边的 boss 是谁啊?是 ccurit mane, 我们看看是不是 这样啊?关联原代码就这个 c 入扣,我们去关联一下,这个就是 重新来,再点进来大家看,哎,老给你方法,真正的大 boss, 那个核心叫 cctv 慢,那点我们会掉他的,老给你方法再点进来,直接点那个实现哈,然后的话呢,执行认证再点, 大家看是不是看见那个认证器了呀?叫奥迪 kitty, 再点 第一个是抽象的,好了,这里边的话呢,掉了这个度 mdk 的方法再点进来,好,我们看到这个时候他需要去获取一个或者是多个的肉,目前我们用的 单各种,所以说点进来,好,我们看到我们掉了,乱的,什么方法呀?叫告 get ond k 是阴否方法再点, ok, 那这个里边的话呢?叫什么叫渡 get ond k 是阴否?传了一个 took, 我们看下这个方法啊, 注意下这个方法,这个方法实际上就是这个方法,而这个类, 而而这个类,而这个方法所在的类,实际上我们往上翻一下就是什么?就是我们讲的这个抽象类,就是我这笔记里面写的那个。好了,那后边呢?再往下大家看,是不具体实现了, 所以说我们在做的时候的话呢,我们如果要是仅实现认证的话,也没说授权哈,我们需要去 继承这个类来实现这个方法, ok, 以上就是我们实现 c 周认证的全过程,有这样的一个步骤,下节课的话呢,我们将逐一的进行实现。

哈喽,大家好,我是齐海啊,今天我想来分享一个线上问题的排查,顺便也带出一下我们是什么去看原码啊,包括怎么去深入了学习框架。我先简单介绍一下这个问题的背景,我们项目当中用的分影去完成 r、 b、 c 的一个调用, 那这个底层其实就是封装了 http 的一个请求跟响应,使用起来其实跟大波这种 rpc 框架也就类似,先定一个二方包,那这种二方包他有一个训练化跟反训练化的一个过程,那这次的问题是怎样一个问题啊?这次遇到的问题就是我新添加了一个接口的调用,然后这一行就报错了 啊,就是报读取这个瑞斯胖斯里面的包底去做转换的时候报错了。大家可能不知道为什么要定义这么一个 decode 啊?啊?其实这是有一些历史背景的啊,这个 dcode 他实现了 fin, 他原生自带的这个接口,那 fin 在解析的时候,他就会找到这个接口的一个时间内复印,他在解析这个请求的时候,他就会类似于 spi 这种机制去调用这个 dq 等我们可以看这个对战啊,他是在处理这个请求响应的时候 会去调用这个抵扣点,这个抵扣点默认是有病的一个视线的,但是我们是自定义了之后,他会优先用我们自定义的这个抵扣点。为什么不用默认的抵扣点啊?主要是因为一些历史原因啊,这里不去展开讲,我们直接就在看这里,他到了这一步之后,这里他 body twisty 拿到的是什么东西啊?他是直接拿到了一个对象的一个地址,这个就可以简单理解成就是他的一个地址,那正常掉其他人的接口就不会有这个问题啊。我们再来看一下掉其他接口是怎样的?这里就掉另外一个接口 kiss drink, 看一下他打赢,哎,他打赢出来为什么就是一个节省的支付串呢?刚才那一个为什么就是一个地址呢?一个读出来的是地址啊,另外一个读出来的是节省支付串。那为什么会有这种差异性呢?我们都是调到同样的复印接口,那作为提供这个二方包的同事,我去问了一下他这个问题, 他就跟我讲可以用另外一种方式去读取这个 body 就没有问题了。我问他这两种读取有什么差异呢?自己也讲不出来原因啊,个是推视镜,另外一个是 body, 然后再把它读取出来, 这两种方式到底有什么不一样吗?那我们再明确一下问题,同样是调分接口,为什么有一些接口?他 tree stream 打印的是节省另外一些接口,他 tree string 他打印的就是一个对象的地址。那接下来我们就开始分析这个圆码,这就是我调别人 服务,他提供了一个份接口,这个接口他返回了对象,他打印出来就是一个地址,而不是一个街审,我们就从这里开始去第八个,嗯,大家看一下,进来了之后这就是份他的一个汉德伦,他是有一个封装的, 直接去银墨口进行一个吊用,这里是一个请求的转发啊,吊,哪一个接口,哪一个参数啊?银墨口我们继续进去,直接通过名字可以到这里来,这里就是执行,并且解析,这里还在对请求进行一个封装,我们继续走 啊,这里就是去执行这个请求,拿到的是一个 spose, 所以继续调用进去。这里拿到的也是一个地址啊,这里就是通过复载均衡注册中心去拿到对应的一个指定地址,这里拿到客户端去执行这个请求。我们进这个方法啊,这里就通过一种命令模式啊,去执行这个请, 他这里面就是一个回调函数,这个杀不灭他,他去封装了一些命令,他的一些出手法的操作啊,再去执行里面这个回调函数的啊。执行体上明确这个 t 就是返回了 spose, 所以我们直接到这个请求题这里来,然后 excuse? 执行 到这里,然后继续进去啊。 internel, htb, 克莱特,我们看一下他是怎样一种事情啊。这个已经是跟 fin 不相关的阿帕奇里面的发送网络请求的客户端,所以这里面就没必要去进行第八个了,直接看 fin, 他做了一个后置的处理,他这里用了一个建造者模式啊, 去对这个 sposs 进行一个 bude, 这里的是 poss, 拿到了之后我们可以去执行一下,看一下他得到了这个巴蒂提示军人之后是不是一个节省,他这里打印的就是一个对象。好,我们继续走 这里,他其实掉到底层的一些框架里面,嗯,可能很容易迷路,那我们直接看这里的对战,直接走到飞人这里,跳出来,跑到这里,然后跳到这里之后,我们继续往下走, 我们看这里啊,他在处理这个 response, 我们进去啊,呃,到这里之后,哎,看一下这里有个 logo 的级别 啊,不等于浪的话,他就会去处理这个 response, 继续进去啊,看一下这里是在处理什么东西好,这里他没有去做任何处理,然后直接 respose 这里出来之后这个 respose, 他继续往下面走,这里判断他要返回的是什么类型,这里就会去调用我们自定义的这个抵扣点 去拿到这个最大额头,所以这里提示君的话就会有问题的。看一下这里的巴蒂提斯君拿到的就是这样一个对象的地址, 所以这里肯定是有问题的,他应该是一个节省,然后到这里来,所以走我们自定义的 dcode, 走我们自定义的 dcode, 到这里来肯定就会报错了, 然后要走到这里,然后这一行代码去进行一个兼容啊,但是我们以前的很多代码的确是走这一行也可以去正常解析啊,所以我们来看一个正常。呃,所以我们来看一个老接口,他为什么就能打印出来一个接审 好,我们就通过这样一个接口啊,进去啊,这是以前他们钓鱼的一个接口,我们来看一下啊,跟刚才一样的,到这个迪斯帕去这里 去进行一个调用,继续走前面的代码都没什么区别,我们就直接看他对于这是 pose 的一个处理啊,直接跳到这里来,继续进来到这里来,进去。哎,大家也没发现, 大家有没有发现前面那种情况,他没有走到这里来,所以他没有去对这个的 pose 去做一个处理, 那我们看一下这个位置 pose 里面到底在做什么事情啊?继续走啊。咦?大家有没有发现他对这个保底有做一个读取,留的一个读取, 这里推八 d, 这里八 d, 他把它转成一个字节的一个数组,这个字节数组他是重写了这个题数据的,重写的这个题数数他就能够把里面的字节数组转化成一个 啊。我们想要的这个巴迪的节省,所以关键一点就是他重写的这个 tus tune, 我们这个 dcode 他就是这个,这个巴迪去 tishrin, 如果说走了刚才那个逻辑的话,他就能够把他的巴底去以节省的形式去给他打印出来,而不是用 oppo 机在里面的 tst 君,所以这是导致 有差异的一个直接原因。那我们继续回到刚才的代码啊,关键就是在这里。那我们再来第八个看一下直接打印地址的这一次请求,他为什么 respons 没有走这里啊? 好,那我们继续进来啊,我们直接跳到,我们刚才看到哪里啊?就到这里来,到这里来啊,继续进去,所以我们来看一下,我们来执行一下 啊 fouse, 所以说他不会进去处理这个 spose, 那我们看一下他,他为什么是 forse 啊?为什么其他请求他是去呢?我们来看一下他怎么判断这个是不是在第八个开启的。走,继续走,这就是默认第八个的一个印特优先级的一个值啊, 他跟这个去做一个比较,这个他是一万,那这个他的一个出租值是两万,所以说他不满足这个条件,他就 然后返回一个 fuse, 那我们再来看一下这个值他是怎么去设置的,我们看一下这个注视啊,这个值如果是为空的话,他会继承 param logan, 那我们就来看一下这个 logan, 他的 parent logan 是什么 logan? 我们再来看啊,往上走,这里也是两万,那继续往上走,这里也是两万,往上走,这里继续往上走,往上走。 然后一直追溯到这个 rut logo root logo 它的是两万,它上面就没有帕瑞特了,所以说这里的日字 logo, 所以这里的原因就是 logo 他的一个打印日字的级别没有匹配到,所以导致他没有去处理这个 response, 没有去重写这个 street string, 那为什么其他接口会处理这个接口他就不会去处理了?那我们看一下项目里面他对包打印的这个包明有没有什么配置好,大家可以看一下 这里他默认配置的是第八个,那在根部落下 com 包下面,他其实是没有去配置的,所以说他是用的一个默认值啊,他是 inford 一个级别的啊,大家记好啊,这个包路径啊, come 露他是点 dm, 那我们再来看一下我们新调的这个接口, 哎,这个报名他是没有去匹配到的,他是没有去匹配到的,所以到这里基本上结论就已经有了,因为我们调用的这个二方包,他定义的这个报路径跟其他的 api 的接口,他的报路径是不匹配的,所以他这里不会开启这个第八个的状态, 然后他就没有去对这个 respose 的 two string 去进行一个重写,导致我们这里的 spose body twiston 直接去调音的 oppo 七个人去打印内的一个地址的一个方法,所以会报错,所以问 题就在这里。那明确的问题了之后,我们就知道怎么去解决啊?第一个解决方案就是让提供这个二方包的人去改,把这个报名前面加一个后缀,跟我们配置的这个是去匹配的,或者我们在调用方的这边直接把这个路径改一下,也能匹配到他的这个接口, 也能走到瑞士胖斯那个处理逻辑。但是我认为这两种解决方案都不太好,因为你整个请求跟响应的处理不应该依赖于任何日制的这种框架,而应该直接去对他的巴底去进行一些流失的处理。所以说我认为直接用这种方法去替换掉这个方法就好了,所以说这里就改成这样, 直接这样处理就行了。原先这种驱使菌本身就是不太合理的,这本身就是 rpc 的奖励了,一个解析不应该去依赖任何日制的这种框架,这种藕和性是完全没 必要的。好,这个圆码的分析就到这里啊。最开始反馈这个问题,虽然同时给了这种解决方案,但是至于根本的原因他也不清楚。在工作当中很多人都会遇到这种情况,就是遇到一个问题,你可能改一下写的方式,或者说百度一下,马上就能够查到一个解决方案啊,的确也能解决, 但是你没有刨根问底去深究,那下一次遇到类似的问题,你还是去百度吗?关键是有些问题,他可能一方面这个技术比较新,另外一方面他是有很多前置条件的,比如说这个场景,为什么这两种方式在复印的这种情况下 有些不一样,你就算去搜索也很难去描述啊,所以说如果你有分析原码的这种能力,你完全可以去刨根问底去深究一下,而且最后你发现我们最后改动其实非常小,就改了银行代码,但是你在分析这个问题的过程当中 去熟悉了整个 rpc 调用他的一个请求的处理的一个过程,你能看到他很多内部的一些设计在里面,好的不好的你都能学习到很多东西,这种潜移默化的学习就逐渐能够拉开你跟别人的一些差距, 长期下来他就会量变引起质变,那逐渐你就会变成别人眼中的大神了。今天就通过这么一个小的问题啊去分享给大家,如果对你有帮助的话,也希望能够一线上联多多点赞转发,没关注的小伙伴也麻烦点一下关注,好,谢谢大家,拜拜!

自选锁、轻量级锁、重量级锁、宠物锁、乐观锁、悲观锁。家伙中呢?有这么多锁的概念,大家是不是很混乱?哈喽大家好,我是酷豹科技联合创始人麦克 视频啊,我会帮大家彻底去搞懂这些锁的原理以及不同锁的概念。另外,我把往期视频内容呢整理成了一本家网面试指南,里面包含了三十五万字的面试文档,两百份精选简历模板以及家网家国师学习路线图,有需要的小伙伴可以在我的评论区留言去领取。 首先,锁设计的初衷是为了解决多线人环境下,多个线人同时对一个共享数据做修改操作,这个动作会造成数据的并发安全问题,比如说原子性、可见性等等。而解决这个问题的办法就是避免多线人并行访问。于是呢,有了同步锁,也称为库字锁或者排插锁或者斜锁。这个锁的特点呢,就是 保证在同一个时刻只允许一个县城访问共享资源,从而去避免了竞争的问题。然后我们又会发现一个问题,加了锁虽然保证了数据安全,但是会影响到程序的性能。实际上,我们只有在涉及到对数据修改的时候,才需要保证排查性。于是我们把对数据的毒和血分离出来,设计了毒血锁, 特点是毒和毒不护赤,毒和血护赤。这样一个设计方案呢,既提升了性能,又保证了安全性。而这个毒锁我们也称为共享锁,意思是允许多个县城在同一个时刻获得访问权限。接着我们又进一步思考,能不能够不加锁,也能够保证数据的安全性呢, 所以不加锁去保证安全性的本质啊,就是尽可能避免竞争冲突。在加握中, case 机制就是一种乐观锁的一个实现。在加握中,典型的排查锁就是 single nine 的关键字。 single nine 的同步锁呢,早期也称为重量级锁,因为它的底层是通过 操作系统提供的 matx 机制来实现互次竞争的。 matx 呢,是内核指令线层,在进程锁的时候呢,会导致进程在用户态和内核态之间切换,相对开销会比较大。而线层阻塞、等待和唤醒这两个动作也会影响到性能。 我们发现在很多场景中,县城占用锁的时间会非常短,所以在这类场景中,县城没有必要去主射就可以进入到锁。所以基于这些前提啊, cinconnite 在锁的竞争逻辑中引入了偏向锁、轻量级锁进行加锁的一个性能优化,从而去引出了 cinconnite 所升级的一个概念。 因此从宏观层面来说,锁的类型只有两类,读锁和解锁。据大家看到的轻量级锁、自选锁、偏向锁、乐观锁、对向锁都是锁优化过程中引出的一些概念,大家可以把这个理解啊延展到 mythical 层面,也是类似的, mythical 中的锁其实也是读锁和解锁两种。据大家看到的零件 表锁、行锁、间隙锁,本质上都是对写锁进一步优化而已。好了,今天的视频就分享到这里,如果你觉得这个视频对你有所帮助,记得点赞和关注。我是麦克,我们下期再见。