random 模块 && hashlib模块(md5加密)

1.random模块

1.获取0-9任意整数

res = random.randint(1, 9)
print(res)
print(type(res))

2. 获取0-1之间任意小数

# res2 = random.random()
# print(res2)

3. 打乱  、 随机取

# 洗牌
# 将可迭代中的值进行乱序
list1 = ['红桃A', '梅花A', '红桃Q', '方块K']
random.shuffle(list1)
print(list1)

# 随机获取可迭代对象中的某一个值
# list1 = ['红桃A', '梅花A', '红桃Q', '方块K']
# res3 = random.choice(list1)
# print(res3)

4.例题; 

# 需求: 随机验证码
'''
需求: 
    大小写字母、数字组合而成
    组合5位数的随机验证码
    
前置技术:
    - chr(97)  # 可以将ASCII表中值转换成对应的字符
    # print(chr(101))
    - random.choice
'''


# 获取任意长度的随机验证码
def get_code(n):
    code = ''
    # 每次循环只从大小写字母、数字中取出一个字符
    # for line in range(5):
    for line in range(n):

        # 随机获取一个小写字母
        res1 = random.randint(97, 122)
        lower_str = chr(res1)

        # 随机获取一个大写字母
        res2 = random.randint(65, 90)
        upper_str = chr(res2)          # 讲0-255之间的整数转化成响应字符

        # 随机获取一个数字
        number = str(random.randint(0, 9))

        code_list = [lower_str, upper_str, number]

        random_code = random.choice(code_list)

        code += random_code

    return code


code = get_code(5)
print(code)
print(len(code))

2.hashlib模块   (步骤:生成md5对象,加密update,加盐update,返回加密字符串hexdigest)

1.特点

# 1、什么叫hash:hash是一种算法(3.x里代替了md5模块和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法),该算法接受传入的内容,经过运算得到一串hash值
# 2、hash值的特点是:
#2.1 只要传入的内容一样,得到的hash值必然一样=====>要用明文传输密码文件完整性校验
#2.2 不能由hash值返解成内容=======》把密码做成hash值,不应该在网络传输明文密码
#2.3 只要使用的hash算法不变,无论校验的内容有多大,得到的hash值长度是固定的
#基本用法
import hashlib m=hashlib.md5()# m=hashlib.sha256() m.update('hello'.encode('utf8')) print(m.hexdigest()) #5d41402abc4b2a76b9719d911017c592

#加盐
import hashlib
m = hashli.md5()
m.update('密码'.encode('utf8')
# 多加一个update 盐
m.updtae('你猜啊哈哈哈'.encode('utf8'))
return m.hexdigest()
原文地址:https://www.cnblogs.com/bigbox/p/11879667.html