发表于: 2018-09-17 21:27:07

1 378


今天完成的事情:(一定要写非常细致的内容,比如说学会了盒子模型,了解了Margin) 

今天主要是准备小课堂

什么是MD5,为什么要使用MD5,MD5为什么不可逆?

MD5消息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。MD5由美国密码学家罗纳德·李维斯特(Ronald Linn Rivest)设计,于1992年公开,用以取代MD4算法。


理解的几个问题

1.MD5码不是128位的吗?为何得出来的乱码有的是32位的?

128位是指二进制位。二进制太长,所以一般都改写成16进制,每一位16进制数可以代替4位二进制数,所以128位二进制数写成16进制就变成了128/4=32位。


2.MD5特点是什么?

1.长度固定: 不管多长的字符串,加密后长度都是一样长 作用:方便平时信息的统计和管理

2.易计算: 字符串和文件加密的过程是容易的. 作用: 开发者很容易理解和做出加密工具

3.细微性: 一个文件,不管多大,小到几k,大到几G,你只要改变里面某个字符,那么都会导致MD5值改变. 作用:很多软件和应用在网站提供下载资源,其中包含了对文件的MD5码,用户下载后只需要用工具测一下下载好的文件,通过对比就知道该文件是否有过更改变动.

4.不可逆性: 你明明知道密文和加密方式,你却无法反向计算出原密码. 作用:基于这个特点,很多安全的加密方式都是用到.大大提高了数据的安全性


3.什么是MD5加盐?

比如我的银行密码是”12345” 1.得到的MD5是:827ccb0eea8a706c4c34a16891f84e7b 2.一个人截取到这个密文,那么通过撞库肯定容易撞出12345. 3.我们要做的就是加盐,银行密码还是”12345”,然后我把银行密码加上我特定的字符串才计算MD5 所以密码还是那个密码,但是变成求”12345密码加密987”的MD5值,然后再得到MD5,那么这个MD5起码可以确认那个数据库不会有.


4.关于撞库破解:

这是概率极低的破解方法,原理就是: 1.建立一个大型的数据库,把日常的各个语句,通过MD5加密成为密文,不断的积累大量的句子,放在一个庞大的数据库里. 2.比如一个人拿到了别人的密文,想去查询真实的密码,就需要那这个密文去到提供这个数据库的公司网站去查询.


5.为什么MD5不可逆,加密之后的密码还会被解密吗?

MD5不可逆的原因是其是一种散列函数,使用的是hash算法,在计算过程中原文的部分信息是丢失了的,一个MD5理论上的确是可能对应无数多个原文的,因为MD5是有限多个的而原文可以是无数多个。


比如: 1+6=7,但是给你个7你能知道这是几跟几加得的吗?

所以,一般的MD5运算可以通过撞库的方式,说白了,就是根据MD5结果进行反向的查找,加盐之后,几乎是不可能获取到你的密码的.


关于MD5工具类是任务5做过的,然后今天写了一个测试类,测试加盐之后的字符串和原始字符串是否是同一个字符串

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:com/spring/spring-context.xml")
public class Task04 {
@Test
public void MD5Test(){
String password = "!ytd1129097428";
   String md1 = MD5Util.MD5(password);
   String md2 = MD5Util.generate(password);
   System.out.println("加密前:"+password);
   System.out.println("普通MD5加密后:"+md1);
   System.out.println("加盐MD5加密后:"+md2);
   System.out.println("比较原文和加盐MD5加密之后是否一致:"+MD5Util.verify(password,md2));
}

结果


后面就在解决tomcat的问题,一个师兄搞了半天给我弄出来了,我换了一个项目,又不行了,我按照师兄的方法重新操作了几次,还是不行,估计我是忘了某个步奏

用tomcat运行项目的时候,显示打包成功的,但是在target目录下的web-inf 又没有了jsp文件

 哎,真是伤


明天计划的事情:(一定要写非常细致的内容) 

今天师兄说作为开发,要及时的解决问题,不然后面越积越多,出问题都不知道该从哪里找,

所以还是踏实点,明天再问问
遇到的问题:(遇到什么困难,怎么解决的) 
收获:(通过今天的学习,学到了什么知识)


返回列表 返回列表
评论

    分享到