python3 MD5加密用法

2021-09-25 08:02:11 字數 3628 閱讀 8503

首先現安裝包

pip install hashlib
1.第一種方法,密碼定死不能改的形式

import hashlib

str_md5 = hashlib.md5(b'123456').hexdigest()

print('md5加密後為 :' + str(str_md5).upper())

md5括號中就是定死的形式,

2.第二種可以修改形式,比較常用

import hashlib

str = '123456'

# 建立md5物件

m = hashlib.md5()

# 或者 b = bytes(str, encoding='utf-8'),作用相同,都是encode為bytes

# b = str.encode(encoding='utf-8')

b = bytes(str, encoding='utf-8')

m.update(b)

str_md5 = m.hexdigest()

str_md5 = str_md5.upper()

print('md5加密前為 :' + str)

print('md5加密後為 :' + str_md5)

僅供參考。

** 第一步,安裝crypto**

pip install crypto

** 第二步,安裝pycryptodome**

pip install pycryptodome

第三步,改資料夾名稱

進入python3的目錄下的\lib\site-packages,將crypto資料夾更名為crypto(注意是大寫的c,否則匯入模組失敗

import base64

from crypto.cipher import aes

import base64

from crypto.cipher import aes

# aes加密

def aes_crypt(key, iv, passwd):

"""aes加密演算法(key,iv,passwd輸入均應為bytes型別,選擇mode_cbc型別加密)

:param key: 秘鑰(定值,16位長度)

:param iv: 偏移(定值,位長度)

:param passwd: 密碼

:return: 返回值再經過base64加密後

"""bs = aes.block_size # 獲取aes資料位數(16位)

# 補位,補夠16位

pad = (lambda s: s + (bs - len(s) % bs) * '#')

print(pad(passwd))

aes = aes.new(key.encode('utf-8'), aes.mode_cbc, iv.encode('utf-8'))

return base64.b64encode(aes.encrypt(pad(passwd).encode('utf-8')))

aes_key = 'qyffyudhguibplmn'

aes_iv = '1111115642223454'

password = '123456'

# 注意,經過aes_crypt加密的密文是bytes型別

password = aes_crypt(aes_key, aes_iv, password).decode('utf-8')

print(password)

url加密

我們訪問**時系統會將我們的輸入的文字進入url加密,如

那麼『%e7%99%be%e5%ba%a6%e7%bf%bb%e8%af%91』到底是什麼呢?

解密

首先匯入from urllib import parse

貼上**操作下就知道了

from urllib import parse

from urllib import request

url = ''

url_data = parse.urlencode(dict1) #unlencode()將字典轉化為k1=v1&k2=v2

print(url_data) #url_data:wd=%e7%99%be%e5%ba%a6%e7%bf%bb%e8%af%91

data = request.urlopen((url+url_data)).read() #讀取url響應結果

data = data.decode('utf-8') #將響應結果用utf8編碼

with open('1.html', 'w', encoding='utf-8')as f:

f.write(data)

# print(data)

url_org = parse.unquote(url_data) #解碼url

print(url_org)

檢視資料看到可以自己寫加密與君共享

def encrypt(s):

b = bytearray(str(s).encode("gbk"))

n = len(b) # 求出 b 的位元組數

c = bytearray(n * 2)

j = 0

for i in range(0, n):

b1 = b[i]

b2 = b1 ^ n # b1 = b2^ key

c1 = b2 % 16

c2 = b2 // 16 # b2 = c2*16 + c1

c1 = c1 + 65

c2 = c2 + 65 # c1,c2都是0~15之間的數,加上65就變成了a-p 的字元的編碼

c[j] = c1

c[j + 1] = c2

j = j + 2

return c.decode("utf8")

def decrypt(s):

c = bytearray(str(s).encode("utf8"))

n = len(c) # 計算 b 的位元組數

if n % 2 != 0:

return ""

n = n // 2

b = bytearray(n)

j = 0

for i in range(0, n):

c1 = c[j]

c2 = c[j + 1]

j = j + 2

c1 = c1 - 65

c2 = c2 - 65

b2 = c2 * 16 + c1

b1 = b2 ^ n

b[i] = b1

try:

return b.decode("gbk")

except:

return "failed"

s1 = encrypt('123456')

s2 = decrypt(s1)

s1是加密結果

s2是解密

完美 (ಥ_ಥ)

python3進行md5加密

import hashlib,base64 md5加密 s 123 m hashlib.md5 s.encode res m.hexdigest print res md5加密 加鹽 def md5 s,salt new s str s salt m hashlib.md5 new s.encode...

AS3 MD5加密資料

md5的全稱是message digest algorithm 5,在90年代初由mit的電腦科學實驗室和rsa data security inc發明,經md2 md3和md4發展而來。message digest泛指位元組串 message 的hash變換,就是把乙個任意長度的位元組串變換成一定...

MD5的用法之加密

public static final string encodehex byte bytes return buf.tostring try catch nosuchalgorithmexception e 簡單應用 public string md5 string tochapter catch...