一,了解密码加密方式
密码具有私有性较强的特性,预测密码加密对个人隐私的保护有这非常大的作用。在用flask搭建网站时候若服务器有被攻破的风险,要是用户表中密码字段也被拿走,后果将不堪设想。
在密码保护中主要有密码加密和密码存储两种方式:
1,密码加密
主要是在密码本身加密过程中的处理策略。
- 明文转码加密:BASE64, 7BIT等。BASE64只是利用索引对应关系进行加密的方式,具有可逆性,在安全性上只比明文的安全性高一点点,这种方式并不能算做真正的加密。
- 对称算法加密:DES, RSA等。DES是将后半部分与前半部分进行置换的策略。3DES是DES的三重加密,安全性比较高,位数也比较长,目前没有3DES被破解的记录。
- 签名算法加密:如MD5, SHA1等。
MD5(Message-Digest Algorithm 5),也叫信息-摘要算法,他的特点是加密算法比较固定,如果两个密码明文部分相同,则得到的哈希值是一样的,有被破解的风险。
- 加盐哈希加密:最大特点是的“撒盐”操作,加密时“随机”字符串(盐值),再进行哈希加密。即使输入的密码相同,若盐值不同,那么哈希值也不一样。
eg:我将用户“zy”和“zy1”的密码都设置为“111”,通过撒盐哈希加密后得到:
明文部分一样,但是用撒盐方式后得到不用的密码,具有唯一性。现在网站开发中主要是运用这种加密方法。
2密码存储的主要形式:
主要是在密码本身存储过程中的处理策略。
- 明文存储:没有任何安全性,一旦数据库被黑所有密码直接明文显示在黑客面前。
- 加密存储:通过一定的变换形式,使得密码原文不易被识别。
二,认识werkzeug
暂时了解一下Web Server Gateway Interface(WSGI),Web应用的实质是客户端想服务器发送HTTP请求,服务器根据请求返回HTTP响应,客户端接受的响应会在客户端显示出来。在学习Web应用前,首先得搞懂HTTP的相关知识,以及TCP,UDP的使用,在Web开发中增加了底层开发,使得开发具有一定难度。
这时,WSGI作为在Web应用及底层TCP之间的接口,直接对WSGI操作,再通过WSGI去操作底层TCP应用,免去了底层开发的麻烦。
werkzeug是Python中