写点什么

Week11 作业 1

用户头像
熊威
关注
发布于: 2020 年 08 月 27 日



import os, base64
from hashlib import sha256
from hmac import HMAC


def encrypt_password(password, salt=None):
"""Hash password on the fly."""
if salt is None:
salt = os.urandom(8) # 64 bits.

assert 8 == len(salt)
assert isinstance(salt, bytes)
assert isinstance(password, str)
if isinstance(password, str):
password = password.encode('UTF-8')

assert isinstance(password, bytes)

result = password
for i in range(10):
result = HMAC(result, salt, sha256).digest()

return salt + result


def validate_password(hashed, input_password):
return hashed == encrypt_password(input_password, salt=hashed[:8])


if __name__ == "__main__":
hashed = encrypt_password('secret password')
assert validate_password(hashed, 'secret password')
print (hashed)
print (base64.b64encode(hashed))
print (base64.b64decode(base64.b64encode(hashed)))



python 验证密码



  1. 造成系统不可用的原因:非计划性宕机和计划性宕机两大类,其中,非计划性宕机主要是由计算机故障或数据故障引起的;计划性宕机主要是由于生产系统的数据改变或系统改变引起的。非计划性宕机非计划性宕机主要包括主机宕机、数据故障宕机、存储故障、人为错误、数据损坏、站点故障等。

  2. 保障系统高可用的方案: 完善基础,做好自身,容错下游,防备上游。包括监控(量化过去和现在),压测(预测未来),降级(预防故障,快速止损);多数据中心和集群;



用户头像

熊威

关注

还未添加个人签名 2019.06.12 加入

还未添加个人简介

评论

发布
暂无评论
Week11作业1