IT修真院·小课堂丨互联网职业小课堂在线学习平台

课堂课题:

什么叫明文,什么叫密文,为什么不允许在数据库里明文保存密码?

关联任务:

任务五

直播时间:

2019-06-11 15:30:00


课堂内容:

视频链接:

PPT链接:

提交按钮:

小课堂内容格式


标题:

【修真院xx(职业)小课堂】课题名称

开场语:

大家好,我是IT修真院XX分院第X期的学员XX,一枚正直纯洁善良的XX程序员,今天给大家分享一下,修真院官网XX(职业)任务X,深度思考中的知识点——XXX

(1)背景介绍:

背景介绍的时候,尽可能的要宽广,讲清楚来龙去脉,讲清楚为什么会需要这个技术。

(2)知识剖析:

讲知识点的时候,尽可能的成体系,学会成体系的去给别人介绍知识。现在很多做的都是零散的,没有分类。

(3)常见问题:

最少列出1个常见问题。

(4)解决方案:

写清楚常见问题的解决方案。

(5)编码实战:

尽可能的去寻找在真实项目中在用的。如果你能找到某个网站在用你说的知识点,这是最好的。学以致用,否则当成练习题就没有意义了。多准备一些demo,讲解过程中将知识点和demo结合,便于大家理解所讲解的知识点。

(6)拓展思考:

知识点之外的拓展思考,由分享人进行讲解,这些东西就是所谓的深度,也是一个人技术水准高低比较的表现。

(7)参考文献:

引入参加文献的时候,在引用的句子后面加上序号【1】。参考文献中列出详细来源。不要去抄别人的东西,这是一个基本的态度。

(8)更多讨论:

Q1:提问人:问题?
A1:回答人(可以是分享人,也可以是其他学员):回答
Q2:提问人:问题?
A2:回答人(可以是分享人,也可以是其他学员):回答
Q3:提问人:问题?
A3:回答人(可以是分享人,也可以是其他学员):回答

(9)鸣谢:

感谢XX、XX师兄,此教程是在他们之前技术分享的基础上完善而成。

(10)结束语:

今天的分享就到这里啦,欢迎大家点赞、转发、留言、拍砖~

什么叫明文,什么叫密文,为什么不允许在数据库里明文保存密码?    

辅导师兄


什么叫明文,什么叫密文,为什么不允许在数据库里明文保存密码?


大家好,我是IT修真院西安分院第6期的学员王鹏,一枚正直纯洁善良的XX程序员,今天给大家分享一下,修真院官网Java任务五,深度思考中的知识点——什么叫明文,什么叫密文,为什么不允许在数据库里明文保存密码?

(1)背景介绍:

关于密码:

密码是一种用来混淆的技术,使用者希望将正常的(可识别的)信息转变为无法识别的信息。

但这种无法识别的信息部分是可以再加工并恢复和破解的。密码在中文里是“口令”(password)的通称。


(2)知识剖析:

2.1 什么是明文?

“明文密码”(CleartextPassword),即传输或保存为明文的密码。

具体是指保存密码或网络传送密码的时候,用的是没有隐藏、直接显示的明文字符,而不是经过加密后的密文。如密码为123,那么密文密码是***,明文密码则是123。从信息安全的角度出发,任何网络服务都不应该保存或发送明文密码。

2.2 什么是密文?

密文是加了密的的文字,明文是加密之前的文字。密文是对明文进行加密后的报文。

2.3 为什么不允许在数据库里明文保存密码?

用明文保存密码有很大的信息安全隐患。一般数据库里还存有用户的姓名、手机号、用户名等信息,一旦数据库发生泄漏,再加上用户的明文密码,攻击者就可以用用户名

和密码去其他网站尝试登陆(因为往往用户会将多个网站的密码根据习惯设成一样的),一旦登陆成功,就会造成更严重的后果。

2.4 一般使用的加密类型有哪些?

(1)对称加密——加密和解密使用相同的密钥。

特点:算法公开、计算量小、加密速度快、加密效率高。不足之处是通信双方都使用同样的密钥,安全性得不到保证。

(2)非对称加密——需要两个密钥:公开密钥和私有密钥。

特点:非对称加密算法的保密性比较好,消除了最终用户交换密钥的需要,但加密和解密花费时间长、速度慢。

(3)单向加密——该算法在加密过程中不需要使用密钥,输入明文后由系统直接经过加密算法处理成密文,密文无法解密。

只有重新输入明文,并经过同样的加密算法处理,得到相同的密文并被系统重新识别后,才能真正解密。

特点:该算法计算复杂。

2.5 一般使用的加密方式有哪些?

(1)DES加密-对称加密

DES设计中使用了分组密码设计的两个原则:混淆(confusion)和扩散(diffusion),其目的是抗击敌手对密码系统的统计分析。混淆是使密文的统计特性与密钥的取值之间的关系尽可能复杂化,以使密钥和明文以及密文之间的依赖性对密码分析者来说是无法利用的。扩散的作用就是将每一位明文的影响尽可能迅速地作用到较多的输出密文位中,以便在大量的密文中消除明文的统计结构,并且使每一位密钥的影响尽可能迅速地扩展到较多的密文位中,以防对密钥进行逐段破译。

(2)RSA加密-非对称加密

它通常是先生成一对RSA密钥,其中之一是保密密钥,由用户保存;另一个为公开密钥,可对外公开,甚至可在网络服务器中注册。为提高保密强度,RSA密钥至少为500位长,一般推荐使用1024位。这就使加密的计算量很大。为减少计算量,在传送信息时,常采用传统加密方法与公开密钥加密方法相结合的方式,即信息采用改进的DES或IDEA密钥加密,然后使用RSA密钥加密对话密钥和信息摘要。对方收到信息后,用不同的密钥解密并可核对信息摘要。RSA算法是第一个能同时用于加密和数字签名的算法,也易于理解和操作。

RSA是被研究得最广泛的公钥算法,从提出到现今的三十多年里,经历了各种攻击的考验,逐渐为人们接受,截止2017年被普遍认为是最优秀的公钥方案之一。

特点:加密速度比较慢一些,但是安全系数比较高。

(3)MD5加密-单项加密

MD5的典型应用是对一段Message(字节串)产生fingerprint(指纹),以防止被“篡改”。举个例子,你将一段话写在一个叫readme.txt文件中,并对这个readme.txt产生一个MD5的值并记录在案,然后你可以传播这个文件给别人,别人如果修改了文件中的任何内容,你对这个文件重新计算MD5时就会发现(两个MD5值不相同)。如果再有一个第三方的认证机构,用MD5还可以防止文件作者的“抵赖”,这就是所谓的数字签名应用。

MD5加密既不是对称加密算法,也不是非对称加密算法,属于单向加密算法。因为它不可解密,只能通过匹配的方式间接解密。因此安全系数最高。

 

(3)常见问题:

3.1 MD5加密为什么不可逆?

3.2 MD5加密的弊端?

3.3 MD5算法的特点?


(4)解决方案:

原因:

MD5不可逆的原因是由于它是一种散列函数(也叫hash函数,它是一个单向密码体制,即从明文到密文的不可逆映射,

只有加密过程没有解密过程,哈希函数可以将任意长度的输入经过变化后得到固定长度的输出,这个固定长度的输出称为原消息的散列或消息映射。 理想的哈希函数可以针对不同的输入得到不同的输出,如果存在两个不同的消息得到了相同的哈希值,那我们称这是一个碰撞)。

一个MD5理论上是可以对应多个原文的,因为MD5是有限多个而原文是无限多个的。

MD5码128位2进制数,最多有2^128种可能,但是可以用来被加密的原文数量显然是有无数种可能的。

弊端:

由之前MD5的实现方法可知,任何一个相同文件、字符串生成的MD5值都是一样的。比如"123456"的MD5值任何时候生成的都是"e10adc3949ba59abbe56e057f20f883e"并且,随着现在计算机技术的不断发展,可以通过MD5值去逆推到原来的明文密码。因此就需要在加密时在给它一个随机生成的值,掺到原密码中进行加密。这个值就叫盐值。

特点:

(1)压缩性:任意长度的数据,算出的MD5值长度都是固定的。

(2)容易计算:从原数据计算出MD5值很容易。

(3)抗修改性:对原数据进行任何改动,哪怕只修改1个字节,所得到的MD5值都有很大区别。

(4)强抗碰撞:已知原数据和其MD5值,想找到一个具有相同MD5值的数据(即伪造数据)是非常困难的。


(5)编码实战:


(6)拓展思考:

6.1 明文密码泄露的危害?

可能会被不法分子通过撞库的方式去其他网站获取更多的个人信息。

2014年12月25日,12306网站用户信息在互联网上疯传。对此,12306官方网站称,网上泄露的用户信息系经其他网站或渠道流出。据悉,此次泄露的用户数据不少于131,653条。该批数据基本确认为黑客通过“撞库攻击”所获得。


6.2 如何避免出现这种情况?

(1)网站运营者要保护好自己的数据库,并且在保存用户关键信息时要进行加密保存。

(2)我们在注册不同网站时注意设置不同的密码,尽量不要出现一个账号密码就能登录所注册的所有网站的情况。


(7)参考文献:

百度百科

CSDN

简书


(8)更多讨论:

8.1 什么是撞库?

撞库是黑客通过收集互联网已泄露的用户和密码信息,生成对应的字典表,尝试批量登陆其他网站后,得到一系列可以登录的用户。很多用户在不同网站使用的是相同的帐号密码,因此黑客可以通过获取用户在A网站的账户从而尝试登录B网址,这就可以理解为撞库攻击。

8.2 数据泄露经常发生吗?

在百度以“数据泄露事故”为关键词查找,百度为您找到相关结果约13,500,000个

举几个例子:
2017年10月,雅虎发布公告称,在2013年的数据泄露事件中,有大概30亿笔帐号(包含当时雅虎所有的用户)泄露,而不是之前所估计的10亿笔,数据泄露的影响范围远超过此前的估计。 
2017年3月,美国求职网站America’s JobLink(AJL)爆发了一起重大数据泄露事件,影响到美国十个州的众多求职者。在本起事件中,一名黑客利用AJL应用程序的一个漏洞窃取了480万笔求职者的数据,暴露的数据包括求职者姓名、生日和身份识别号码。
2017年11月,Uber主动公开了去年发生了一起严重的数据泄露事件,据悉,黑客通过外部代码托管网站GitHub获得了Uber在AWS上的账号和密码,从而盗取了5700万乘客的姓名、电子邮件和电话号码,以及约60万名美国司机的姓名和驾照号码。为了隐瞒此事件,Uber曾向黑客支付10万美元封口费。
2017年11月,媒体发布消息称,趣店百万学生的数据疑似外泄,泄露的数据出包括借款金额、滞纳金等金融数据外,甚至还包括学生父母电话、男女朋友电话、学信网账号密码等隐私信息。据称,此次数据泄露事件有可能是内鬼所为,内部人员主动泄露这些数据以进行报复。
2013年10月,国内安全漏洞监测平台披露,为全国4500多家酒店提供数字客房服务商的浙江慧达驿站公司,因为安全漏洞问题,使与其有合作关系的酒店的入住数据在网上泄露。数天后,一个名为“2000w开房数据”的文件出现在网上,其中包含2000万条在酒店开房的个人信息,开房数据中,开房时间介于2010年下半年至2013年上半年,包含姓名、身份证号、地址、手机等14个字段,其中涉及大量用户隐私,引起全社会广泛关注。

(9)结束语:

今天的分享就到这里啦,欢迎大家提问、互相探讨~


技能树.IT修真院“我们相信人人都可以成为一个工程师,现在开始,找个师兄,带你入门,掌控自己学习的节奏,学习的路上不再迷茫”。

这里是技能树.IT修真院,成千上万的师兄在这里找到了自己的学习路线,学习透明化,成长可见化,师兄1对1免费指导。快来与我一起学习吧~我的邀请码:35313896,或者你可以直接点击此链接:http://www.jnshu.com/login/1/35313896


评论

请您登录 后进行评论