zoukankan      html  css  js  c++  java
  • python-加密算法

    #!/usr/bin/python3
    # coding:utf-8
    # Auther:AlphaPanda
    # Description: 使用hashlib模块的md5和sha系列加密算法对字符串进行加密;使用hmac模块的new方法对字符串进行加密;使用os模块的urandom方法生成指定长度的二进制字节流
    # Version:1
    # Date:Fri Dec  6 20:08:37 EST 2019
    import hashlib
    import random
    # 生成一个md5对象
    hs = hashlib.md5()
    # 使用hs对象自带的update方法,对"abc123"字符串进行加密
    hs.update("abc123".encode("utf-8"))
    # 使用对象的hexdigest方法,获取加密后的字符串
    print(hs.hexdigest())
    
    # 普通的MD5加密算法加密的字符串强度不够,容易被破解。可以在加密时加上其他字符串来增强安全性
    # 这个加上其他字符串的过程,俗称加盐。
    # 注意:在加盐时,需要在生成对象的时候加,另外需要注意的是,加入的是字节流
    hs = hashlib.md5("Michael91".encode("utf-8"))
    hs.update("abc123".encode("utf-8"))
    print(hs.hexdigest())
    
    # 如果使用固定字符串加盐还不够,可以使用随机数据加密
    str_new = str(random.randrange(100,10000))
    hs = hashlib.md5(str_new.encode())
    hs.update("abc123".encode())
    print(hs.hexdigest())
    
    # sha1加密算法
    hs = hashlib.sha1()
    hs.update("abc123".encode())
    print(hs.hexdigest())
    
    hs = hashlib.sha1("Michael".encode())
    hs.update("abc123".encode())
    print(hs.hexdigest())
    
    # hmac加密
    import hmac
    key = b"abc"
    msg = b"I love you"
    hm = hmac.new(key,msg)
    print(hm.hexdigest())
    
    key1 = b"vmasdf"
    meg1 = b"shabi"
    hm = hmac.new(key1,meg1)
    print(hm.hexdigest())
    
    
    import os
    # 随机返回指定长度得二进制字节流
    key2 = os.urandom(32)
    print(key,len(key))
    message = b"thank you"
    hm = hmac.new(key2,message)
    print(hm.hexdigest())
    
    
    # 使用os模块得urandom方法生成指定长度的二进制字节流
    key3 = os.urandom(16)
    mes1 = b"i like"
    hm = hmac.new(key3,mes1)
    print(hm.hexdigest())
  • 相关阅读:
    jQuery_第一章_JavaScript基础
    呵呵双钻
    MINIDVD
    幸运抽奖
    三章
    复习
    三种循环
    百文买百鸡
    1~100的奇数和
    Python memcache和redis
  • 原文地址:https://www.cnblogs.com/butterflies/p/12029738.html
Copyright © 2011-2022 走看看