5.3 MD5加密
js 里面我们其实就已经涉及 了 md5 加密了。
那么 MD5 加密是什么呢 ?
答:MD5信息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。MD5由美国密码学家罗纳德·李维斯特(Ronald Linn Rivest)设计,于1992年公开,用以取代MD4算法。这套算法的程序在 RFC 1321 标准中被加以规范。1996年后该算法被证实存在弱点,可以被加以破解,对于需要高度安全性的数据,专家一般建议改用其他算法,如SHA-2。2004年,证实MD5算法无法防止碰撞(collision),因此不适用于安全性认证,如SSL公开密钥认证或是数字签名等用途。
MD5由MD4、MD3、MD2改进而来,主要增强算法复杂度和不可逆性。 MD5算法因其普遍、稳定、快速的特点,仍广泛应用于普通数据的加密保护领域
MD5 破解的原理:就是 背后有一个 极强的字典,里面全是 MD5 加密后的值。
insert into testmd5 values(1,'zhangsan','123456'),(2,'lisi','123456'),(3,'wangwu','123456');
update `testmd5` set `pwd`=md5(`pwd`);
6.1 初识事务
什么是事务呢?
答:要么都成功,要么都失败!
假设,有两条 SQL 都在执行
①(A 给 B 转账)
②(B 收 A 的钱)
如果 服务器突然之间崩溃了,那么 我们就会 全部 sql 失败!不会更改 任何的数据,不会做任何的改动。否则 钱就消失不见了。。
事务原则:ACID原则 具有原子性、一致性、隔离性、持久性(脏读,幻读…)
实际上 最重要的性质 就是 隔离性,而 学习事务 也是 为了学习 开启不同的隔离级别,会有什么不同的效果。
-
原子性
原子性就是说 一个事务里 可能包含着 多个步骤,但是这些步骤都是 在处理一个事情,是捆绑在一起的。不能分开。比如说 转账的同时,肯定会有 收钱的步骤。 -
一致性
一致性指的是 在操作执行的前后,各自的状态应保持各自的数据一致。比如说 在转账钱 A:800 B:200 那么对于 转账前来说,800 和 200 就是 它的数据一致性。 -
隔离性
如果两个事务同时在执行,或更多的事务同时在执行,这就类似于 多线程的并发问题。需要有一个 东西去限制 对数据的操作,避免 “脏读”(读取数据的时候出错),而所谓的隔离性,就是让 多个事务在处理 同一个 数据的时候 不发生 任何 的关系。 -
持久性
持久性就是说,操作前后的数据 都是 保持一直不变的。比如说 当服务器突然 崩溃掉的时候,我们的 事务 内的 操作 并没有 全部成功,那么 我们就会 一直保持 事务之前的 那些数据不变!如果 事务一旦提交成功,数据也不会再变回 以前的数据! -
脏读(类似于多线程并发问题)
脏读说的是就是,一个事务 读取了 另外一个事务 正在处理的数据,可能在这个 事务 并未提交成功之前,你就已经 去 操作 这块数据了。造成了 “脏读” 现象。 -
不可重复读
这是一种 正常的现象,可能你第一次 读取的时候 有一个事务 对数据的操作并未提交,等待你再次 读取的时候,数据就又发生了改变。 -
幻读(虚读)
这也是一种 正常的现象,可能你第一次读取的时候,只有 四条数据,但 再次 读取的时候 其它事务 又增加了一条数据,导致 第二次读取 是 五条数据。给你一种 读错的 假象。。