python模擬對稱加密演算法

2021-08-15 17:16:27 字數 2131 閱讀 7033

''''''

'''url 的加密和解密

'''from urllib import parse

s='加密字元'

s1=parse.quote(s)

print(s1)

#%e5%8a%a0%e5%af%86%e5%ad%97%e7%ac%a6

s2=parse.unquote(s)

print(s2)

#加密字元

'''base64:

這個是網路上最常見的用於傳輸位元組碼的方式之一

這是乙個基於64個可列印字元來表示二進位制的方法,用於在http環境下傳遞資料

輸入 a-z a-z 0-9 和 「+」 、「/」 很多時候字串尾部為 1個或者兩個 =

'''import base64

s='加密字元'

#加密s3=base64.b64encode(s.encode())

print(s3)

#b'5yqg5a+g5a2x56ym'

#解密s4=base64.b64decode(s3).decode()

print(s4)

#加密字元

'md5 加密'

import hashlib

s='加密字元'

m=hashlib.md5()

m.update(s.encode())

s5=m.hexdigest()

print(s5)

'229c1f7f0a857e81810648bf9cde948c'

#看到一串由16進製制組成的32位字元,就有很大機率是乙個md5加密的了

'''現在大多數用的都是3des加密

des 和 3des 都是對稱加密,可以轉過去也可以轉過來

不管是des 加密還是 3des加密都需要抓兩個東西才能解密(key 和 鹽)

如果遇到des和3des 加密的資料的解密思路:

首先確定加密方法是什麼

然後找到這個演算法需要的key 出現在哪個頁面,去請求獲取

'''# # des 加密

from crypto.cipher import des

from crypto.util import counter

from crypto import random

import binascii

key = '-8b key-'

# 長度為8

msg = 'we are no longer the knights who say ni!'

nonce = random.new().read(int(des.block_size/2))

def des_encrypt(key, msg):

ctr = counter.new(int(des.block_size*8/2), prefix=nonce)

cipher = des.new(key, des.mode_ctr, counter=ctr)

msg = nonce + cipher.encrypt(msg)

msg = binascii.b2a_hex(msg)

return msg.decode()

print(des_encrypt(key.encode(), msg.encode()))

# 3des 加密

from crypto.cipher import des3

from crypto import random

import binascii

key = 'sixteen byte key'

msg = 'sona si latine loqueris '

iv = random.new().read(des3.block_size)

# print(iv)

def des3_encrypt(key, msg):

cipher = des3.new(key, des3.mode_ofb, iv)

msg = iv + cipher.encrypt(msg)

msg = binascii.b2a_hex(msg)

return msg.decode()

s = des3_encrypt(key.encode(), msg.encode())

print(s)

對稱加密演算法 非對稱加密演算法

對稱加密演算法 對稱加密演算法是應用較早的加密演算法,技術成熟。在對稱加密演算法中,資料發信方將明文 原始資料 和加密金鑰一起經過特殊加密演算法處理後,使其變成複雜的加密密文傳送出去。收信方收到密文後,若想解讀原文,則需要使用加密用過的金鑰及相同演算法的逆演算法對密文進行解密,才能使其恢復成可讀明文...

對稱加密演算法 DES加密演算法

一 對稱加密演算法 對稱加密也稱為常規加密 私鑰或單鑰加密。乙個對稱加密由5部分組成 明文 plaintext 這是原始資訊或資料,作為演算法的輸入。加密演算法 encryption algorithm 加密演算法對明文進行各種替換和轉換。金鑰 secret key 金鑰也是演算法的輸入。演算法進行...

對稱加密演算法

缺點 演算法 說明des 資料加密標準 用的少,因為強度不夠 3des 使用3個金鑰,對相同的資料執行三次加密,強度增強 aes高階加密標準,目前美國 局使用的 蘋果的鑰匙串訪問採用的是 aes 加密 ecb 加密 openssl enc des ecb k 616263 nosalt in msg...