00:00
呃,这个事儿咱们我看啊,咱们写个测试的哈先。来一个security。不用整,只有咱们就整个main方法就行啊。呢,它提供了一个东西啊,叫be。这个念着挺挺别扭的哈。Password encounter。这么个玩意儿。它也一样实现password encoder这个接口。哎,然后呢,我们去创建他的对象啊。第一步,我们去创建一个be。Password in Co。这么一个对象,这个直接尿尿就行。
01:00
就尿这玩意儿啊。嗯,然后第二步呢,准备一个铭文。啊,这个比如说呢,这个就是我们像他一样哈,咱们的一个绕。Password。等于。1313。再下一步呢?再下一步呢,就是呃,加密一下。啊,这个password。点in。传进来,这是一个加密以后的。加米后这个咱们去打印一下。这个很好玩哈,看一下啊。嗯,他这很长。
02:01
整个CTRLC我都拿过来。咱们。同样的,这个铭文不变哈,咱们每多执行几次。Con c。呃,然后多执行几次啊,咱们可以观察观察。CTRLC,诶,大家发现了。呃,整个你要综合看这个字串,整体的话,它肯定是不一样的,你要E4去比,肯定是不不一样的。但是呢,我们放在一起一看呢,哎,又发现它前边几位是一样的。哎,所以说其实他前面几位呢,就是那个颜值。啊,然后呃。都是同一个铭文加密出来的这个东西啊,他每次我们看到它确实是不一样,它其实怎么说做到不一样,这个挺容易的,这个并不难啊,呃,难的是你每次都不一样以后,你怎么能够去给他这个还能够检查出来它是一致的。
03:15
就是说呢,我们,呃,这个原原奏串啊,原本的奏串是不变的。哎,这个是不变的。然后呢,什么是变的呢?颜值是随机的。随机的,那就每次都不一样啊,每次不一样,把这两个综合在一起去做这个加密的操作。把它俩综合到一起啊,得到的是这个密文。呃,因为因为这个颜值每次因为这个每次都不一样,所以说你就算这个不变,那这个也会变,因为哈希的加密算法,输入数据发生一点点变化,输出数据就会有天翻地覆的变化。
04:17
这是说我们其实刚才看到的是一个加密的,加密的一个过程哈,那他要是要是那个匹配的话,他会怎么怎么做哈。我把这个呢,我先注释掉还是咋弄啊。我另外写一个类行不行?嗯,另外写一个啊,我把这个这是我们的,你看啊,这个123123呢。第一步哈,这是我们先准备一个。叫。
05:01
呃,铭文。这个还是我们这个绕password。呃呃,绕。第二个呢,我们去准备一个密文的组成。Include password。这就是我们上面这个随便来一个啊。呃,再然后呢,就是我们去创建这个BC这个对象。呃,第四个是比较。
06:04
点matches。然后那比较结果就是true和false呗。他如果要是真的,我们就说是这边就打印个一致。如果要是假的话,就来个不一致。跑一下这个是啥。哎,要下边这个哈。哎,这个时候你看这是它比较出来能够是一致的。那他咋知道是一致的呢?这个代码吧,我们debug进去看呢,只能是看一定程度哈,看着看着往下走着走着我们就看不懂了。嗯,看一部分啊。
07:02
我们去看它会把这个前面固定取一段,从前面去固定取一段啊,去作为这个就是取这个颜值。进这个match这个方法。嗯。就是他先去看看是不是为闹哈。我们这边不为闹,这个不用管它。呃,这个不管它,就关键是到这儿哈,Check。Pw check检查PW密码。然后咱们进这个方法。先进兔子阵了出来。再进TW。哎,那么这里边儿呢,有一个这个方法叫哈希的PW。这是啥玩意儿?这是那个铭文的。这是那个灭蚊的。那咱们就先看看这个吧,进来哈。前面声明了几个变量啊,现在第一步的操作是到这儿了。咱们就咱们捡这个主要的来说哈,这又了个string builder。
08:02
Sort等于闹。嗯,我们这儿,我们这儿不为闹啊,这边不会跑腿场。然后呢,去获取了一个Les,这是一个总的长度。然后呢,如果小于28也抛一场,这个不会抛一场不会,我们不小于28。这边呢,看看它第一个字符是不是倒着符啊,不是的话它也抛异常,第二个字符呢,看看是不是二,如果不是的话,它也会抛异常啊,这都是检查一下这个密码,这个是不是规范的。哎,如果第二个要是等于它的话,我们这不等于啊。呃,然后呢,取一下这个mirror,这都是做些个判断哈。嗯,然后呢,减off。啊,这都这边不会抛一场哈。In啊,去这个取了一下,取了一个值。从我们这里边哈,它从零到off加二,这取一个值,Off是四。
09:02
二是四,四加二是六,那就是四到六这。四到六这去取的是是多少哈。呃,这个round是十啊,它再转成整形是一个十。这是个哪个呀,是是这个吧,啊,再取了一下它,取一下它呢,然后呢,在这是后边才用哈,现在它又从off加3OFF加25又取了一段,得到这个real。这就是那个真正的颜值,就这个UCD这开始,到九零这结束。呃,UCD这开始到九零这结束是这一段。哎,他把这一段给取出来了。前边这呢,你看这几个东西呢,DOLLAR2A dollar10dollar这一部分呢,就是说去控制的就是表示。哎,它多少位到多少位是什么含义的,这这个是他自己的一个规范规则。
10:01
然后呢,他是把这一段给取出来了。哎,这边给取出来了。取出来以后呢?我去往这儿,开始就有点儿这个闹腾了哈。嗯,Password,这个password是啥?铭文,铭文加上这东西。这是啥玩意儿,这是盖拜,反正咱们看这个吧。嗯,这个就给转成字节数组了,到这儿。哎,转成字节数组。然后这边抵扣的BASE64。把这个东西。穿进来什么这个salt n是这个16是吧,转成这个。这啥玩意儿,也是一个字节数组了。哎,往下其实就是开始,基本上就是数学运算了。哎,去尿了一个be craft。让be c绕。然后呢,去结合这个。这个字节数组。
11:01
结合这个子节数组。就这是铭文的,这是秘文的,这个是那个。有多少位颜值的那个取出来一个哈希的。你看他在这这个算就就就比较费时间了。他现在都一直就在算哈。第八个模式比我们正常模式呢,程序执行的时候要慢。我怀疑他是不是每一步都得检查,这有没有断点啊,可能是。哇,这个地方做操作好长时间哈。这么长时间。Perform the central password harshing step in the bera sc。哎呀。这半天没有过来哈。不过其实他正在算,其实他往下吧。往下咱也看不太懂是啥意思了。反正我是闹不太清楚,他这啥意思,我们就了解一下,前面呢,它会按照我们这个密文哈,按照我们这个密文固定的会去取其中的一段。
12:04
前面是一些个固定格式的信息,然后从这边儿呢,固定去取一段,其实这就是那个最初那个颜值,拿这个固定的颜值对应的,再把这个东西呢。呃,你是把铭文再根据这个再重新去加密,然后再重新去比较或者怎么样的啊,他他会做类似这样的这个操作。对,再往下,人家就是那种这个数学的运算了,这个咱往下摘这个我反正我是看不太懂了啊。如果有同学能看懂的话,你给我讲一讲啊。非常的非常感激哈。不,这个卧虎藏龙是吧,这个说不定。说不定什么时候会有这个。有高手是吧?
我来说两句