day_25(hashlib,configparser,logging)

# hash: 算法, 结果是什么? 是内存地址,
# print(hash('123'))
# dic = {'name':'alex'}
# print(hash('name'))
# print(id('name'))

# hashlib 模块 与加密相关,被称作 摘要算法.

# 1,是一堆算法的合集,他包含很多算法(加密的).
# 2,hashlib的过程就是将字符串转化成---->数字的过程.
# 3,hashlib对相同的字符串转化成的数字相同.
# 4,不同的电脑,对相同的字符串进行 加密 转化成的数字相同.

# 用在哪里?
# 密文(密码).
    # 将密码用算法加密放置到数据库,每次取出验证.
# 文件的校验.

# 初识 hashlib
# import hashlib
#md5 加密算法  常用算法, 可以满足一般的常用的需求
#sha 加密算法  级别高一些, 数字越大级别越高,加密的效率越低,越安全.
#md5
# s1 = '12343254'
# ret = hashlib.md5()  # 创建一个md5对象
# ret.update(s1.encode('utf-8')) # 调用此update方法对参数进行加密 bytes类型
# print(ret.hexdigest())  # 得到加密后的结果 定长

# 无论字符串多长,返回都是定长的数字,
# 同一字符串,MD5值相同.

# 解决方式:加盐.
# s3 = '123456'
# ret = hashlib.md5('aqwe'.encode('utf-8'))  # 创建一个md5对象,加盐
# ret.update(s3.encode('utf-8')) # 调用此update方法对参数进行加密 bytes类型
# print(ret.hexdigest())  # 得到加密后的结果 定长  c5f8f2288cec341a64b0236649ea0c37

# 随机的盐: # username = '爽妹' # password = '123456' # ret = hashlib.md5(username[::-1].encode('utf-8')) # ret.update(password.encode('utf-8')) # print(ret.hexdigest())
#sha 系列
# hashlib.sha1()  #  sha1 与md5 级别相同,但是sha1比md5 更安全一些,
# ret = hashlib.sha1()
# ret.update('123456'.encode('utf-8'))
# print(ret.hexdigest())  # 7c4a8d09ca3762af61e59520943dc26494f8941b
sha也有加盐,动态加盐
# 文件的校验
# 对于小文件可以,但是超大的文件内存受不了,(下面具体代码解决)
# def func(file_name):
#     with open(file_name,mode='rb') as f1:
#         ret = hashlib.md5()
#         ret.update(f1.read())
#         return ret.hexdigest()
#
# print(func('hashlib_file'))
# print(func('hashlib_file1'))

# def func(file_name):
#     with open(file_name,mode='rb') as f1:
#         ret = hashlib.md5()
#         while True:
#             content = f1.read(1024)
#             if content:
#                 ret.update(content)
#             else:
#                 break
#         return ret.hexdigest()
# print(func('hashlib_file'))
# print(func('hashlib_file1'))
大文件可以拆开读,加密结果一样
#
s1 = 'I am 旭哥, 都别惹我.... 不服你试试' # ret = hashlib.md5() # ret.update(s1.encode('utf-8')) # print(ret.hexdigest()) # 15f614e4f03312320cc5cf83c8b2706f # s1 = 'I am 旭哥, 都别惹我.... 不服你试试' # ret = hashlib.md5() # ret.update('I am'.encode('utf-8')) # ret.update(' 旭哥, '.encode('utf-8')) # ret.update('都别惹我....'.encode('utf-8')) # ret.update(' 不服你试试'.encode('utf-8')) # print(ret.hexdigest()) # 15f614e4f03312320cc5cf83c8b2706f

猜你喜欢

转载自www.cnblogs.com/molieren/p/9283124.html