一、hashlib 密码加密

  哈希算法(百度百科):将任意长度的二进制值映射为较短的固定长度的二进制值,这个小的二进制值称为哈希值

  希值:是一段数据唯一且极其紧凑的数值表示形式。如果散列一段明文而且哪怕只更改该段落的一个字母,随后的哈希都将产生不同的值。要找到散列为同一个值的两个不同的输入,在计算上是不可能的。所以,数据的哈希值可以检验数据的完整性。一般用于快速查找和加密算法

  hashlib是python专门提供hash算法的库,现在里面包括md5、sha系列。其中,md5经常用来做用户密码的存储sha1经常用作数字签名。

  MD5加密后不可反解,但同一字段加密结果是固定的,可以通过撞库的方式进行密码破解。加密时加盐,可以提高密码安全度。

import hashlib

a = 'lucy 20111115 female'.encode('utf-8')
# 指定加密算法
h = hashlib.md5()
# 进行加密
h.update(a)
# 显示加密结果
print(h.hexdigest())        # 38a7ebf9dcc839f6e9d9550d457fd529

# 加盐:加密时,通过加参数的方式,提高加密难度。
r = hashlib.md5('dongxuew'.encode('utf-8'))
r.update(a)
print(r.hexdigest())        # b22e72e273628fd565f81a703bbe8973

   二、getpass 隐藏密码

 

import getpass
# 输入密码时隐藏
usr = input('username:')
pwd = getpass.getpass('passwords:')
print(usr)
print(pwd)