首先現安裝包
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...