zoukankan      html  css  js  c++  java
  • 加密模块hashlib

    # # md5加密:不可逆加密
    # # 碰撞解密:用数据再进行一次加密,与原加密结果做匹配

    import hashlib

    data = '数据'
    ###这个必须是字符串类型的,其他类型的不可以
    lock_obj = hashlib.md5(data.encode('utf-8'))
    # 传入加密数据,生产加密锁对象,
    result = lock_obj.hexdigest()
    # 获取加密后的16进制的加密串
    print(result)

    print('=================')
    data1 = '数据数据数据数据数据数据数据数据数据数据数据数据'
    data2 = ''
    lock_obj1 = hashlib.md5(data1.encode('utf-8')) # 生产加密锁对象,传入加密数据
    lock_obj2 = hashlib.md5(data2.encode('utf-8')) # 生产加密锁对象,传入加密数据
    result1 = lock_obj1.hexdigest() # 获取加密后的加密串
    result2 = lock_obj2.hexdigest() # 获取加密后的加密串
    print(result1)
    print(result2)
    ###不管传入的数据长度是多少,生成的这个md5验证码长度始终是一样的

    print('==================')
    ###利用update 将一个数据分几次上传
    # # update可以往锁对象中添加加密数据
    date = '123456789'
    ##一次性将123456789上传加密
    obj = hashlib.md5(date.encode('utf-8'))
    print(obj.hexdigest())
    ##分三次将数据上传加密
    lock_obj = hashlib.md5()
    lock_obj.update(b'123')
    lock_obj.update(b'456')
    lock_obj.update(b'789')
    print(lock_obj.hexdigest())
    ###从程序的运行结果看,只要数据内容是一样的,使用同一套加密算法,
    # 不管是分几次上传数据加密,得到的结果都是一样的


    print(hashlib.md5('123abc嘿嘿000'.encode('utf-8')).hexdigest())
    ###当加密的内容中包含汉字,需要编码一下 加上.encode('utf-8)

    # 注:要为新数据提供加密,一定要为该数据创建一个加密对象

    # # 加盐
    # # 什么是加盐:在原数据前或后添加一些预定的数据,与原数据一起进行加密
    # # 为什么要加盐:
    # # 1.当原数据过于简单,可以对其加盐,提高数据的复杂度
    # # 2.盐与数据有一定相似度,混淆对真实数据的提取
    #
    # data = 'ab_12'
    # lock_obj = hashlib.md5()
    # lock_obj.update(b'a12_d')
    # lock_obj.update(data.encode('utf-8'))
    # lock_obj.update(b'dd_121')
    # print(lock_obj.hexdigest())
    # # a12_dab_12dd_121
    #
    #
    # # 其他位数加密
    # lock_obj = hashlib.sha3_256(b'123')
    # print(lock_obj.hexdigest())
    # lock_obj = hashlib.sha3_512(b'123')
    # lock_obj.update(b'salt')
    # print(lock_obj.hexdigest())
    #
    #
    # import hmac
    # # 与hashlib的不同点:生产锁对象时必须提高数据参数
    # lock_obj = hmac.new(b'')
    # print(lock_obj.hexdigest())
    #
    # lock_obj = hmac.new(b'')
    # lock_obj.update(b'salt')
    # print(lock_obj.hexdigest())


    # import hashlib

    # 加盐
    # 什么是加盐:在原数据前或后添加一些预定的数据,与原数据一起进行加密
    # 为什么要加盐:
    # 1.当原数据过于简单,可以对其加盐,提高数据的复杂度
    # 2.盐与数据有一定相似度,混淆对真实数据的提取
    # lock_obj = hashlib.md5() # 生产锁对象可以添加数据参数也可以省略
    # lock_obj.update(b'before_salt')
    # lock_obj.update('要被加密的数据'.encode('utf-8'))
    # lock_obj.update(b'after_salt')
    # print(lock_obj.hexdigest())


    # 注:要为新数据提供加密,一定要为该数据创建一个加密对象

    # 其他算法
    # lock_obj = hashlib.sha3_256(b'123')
    # print(lock_obj.hexdigest())
    # lock_obj = hashlib.sha3_512(b'123')
    # lock_obj.update(b'salt')
    # print(lock_obj.hexdigest())
  • 相关阅读:
    一 基础--进制转化
    七牛云上传视频并截取第一帧为图片(js实现)
    FNScanner二维码接口openView自定义扫码Demo
    UIPickerView 模块示例demo
    vPlayer 模块Demo
    doT的高级用法及loadData的使用
    acmPush模块示例demo
    UIChatBox模块示例demo
    分享一款基于aui框架的图文发布界面
    基于js的APP多语言处理
  • 原文地址:https://www.cnblogs.com/1832921tongjieducn/p/10922743.html
Copyright © 2011-2022 走看看