1. 程式人生 > 其它 >python學習目錄05-hashlib-hmac-copy-uuid模組的語法

python學習目錄05-hashlib-hmac-copy-uuid模組的語法

  • hashlib 和,hmac模組:用來進行資料加密

    1. hashlib 模組裡主要支援兩個演算法 md5 和, sha 加密
    加密方式: 1:單向加密:md5/sha,只有加密的過程,不能解密;2:對稱加密;3:非物件加密rsa

    需要將加密的內容轉換成為二進位制
    x=hashlib.md5('hello'.encode('utf=8'))生成一個md5物件
    print(x.hexdigest()) 列印加密結果


    x=hashlib.md5() 生成一個md5物件
    x.update('hello'.encode('utf=8')) md5加密格式
    print(x.hexdigest())
    列印加密結果,可網上搜索MD5解析進行反向解密(cmd5.com))




    2. sha 是一個系列的加密

    h1=hashlib.sha1('12345'.encode())
    print(h1.hexdigest())


    h2=hashlib.sha224('12345'.encode()) #224位 一個十六進位制佔4位224/4=56
    print(h2.hexdigest())


    h3=hashlib.sha256('12345'.encode())
    print(h3.hexdigest())


    h4=hashlib.sha384('12345'.encode())

    print(h4.hexdigest())



    3. hmac加密可以指定祕鑰,使用 h 對 你好 進行加密
    h=hmac.new('h'.encode(),'你好'.encode())
    result = h.hexdigest()
    print(result) #獲取加密後的結果


  • copy複製模組:有copy和deepcopy兩個函式,分別用來對資料進行深複製和淺複製
    import copy
    nums=[1,2,3,4,[5,4,3],6,7,8]
    num1=copy.copy(nums) #對nums列表進行淺複製
    num2=copy.deepcopy(nums) #對nums列表進行深複製


  • uuid用來生成一個全域性唯一的id

    import uuid

    print(uuid.uuid1()) #32個長度 每一個字元有16個選擇 16**32


    print(uuid.uuid2()) 沒有uuid2,不能用

    uuid3 和uuid5 是使用傳入的字串根據指定的演算法算出來的,是固定的

    print(uuid.uuid3(uuid.NAMESPACE_DNS,'zhangsan')) 生成固定的uuid


    print(uuid.uuid5(uuid.NAMESPACE_DNS,'zhangsan')) 生成固定的uuid


    print(uuid.uuid4()) 使用最多