python解決AES登入問題

2021-10-05 22:22:58 字數 1824 閱讀 4582

aes是服務端和客戶端共用乙個秘鑰k,client端進行加密,服務端用秘鑰進行解密。下面是python**進行加密的過程

import base64

import requests

from cryptography.hazmat.primitives import padding

from cryptography.hazmat.primitives.ciphers import algorithms

from crypto.cipher import aes

from binascii import b2a_hex

# 此處傳入後台的秘鑰

str_key = "  

encodestr = base64.b64decode(str_key.encode('utf-8'))

class accesstoken:

def __init__(self, key=encodestr):

# 對傳入的秘鑰等進行初始化

self.key = key.encode('utf-8')

# 加密模式

self.mode = aes.mode_cbc

self.iv = encodestr

@staticmethod

def pkcs7_padding(data):

if not isinstance(data, bytes):

data = data.encode()

padder = padding.pkcs7(algorithms.aes.block_size).padder()

padded_data = padder.update(data) + padder.finalize()

return padded_data

# python的aes加密演算法

def encrypt_aes(self, password):

cryptor = aes.new(self.key, self.mode, self.iv)

text = password.encode('utf-8')

text = self.pkcs7_padding(text)

ciphertext = cryptor.encrypt(text)

return (b2a_hex(ciphertext).decode().lower())

# 使用者登入

def custome_login(self, username, password):

# 對密碼加密

password = self.encrypt_aes(password)

# host_url 登入位址 

url = "%s&username=%s&password=%s" % (

host_url, username,password)

# 向後台傳送請求

resp = requests.post(url, headers=headers, verify=false)

data = json.loads(resp.text)["data"]

# 判斷介面請求是否成功,此處可以做乙個try...except...操作

if data:

# 將後台的介面返回值獲取token值,根據自己專案來

token = json.loads(resp.text)["data"]["centertokendto"]["token"]

access_token =

return access_token

# 如果沒有成功,將錯誤資訊返回

return json.loads(resp.text)["message"]

python實現AES演算法

usr bin python coding utf 8 from crypto.cipher import aes from binascii import b2a hex,a2b hex class aes 自己實現了乙個aes類,用於aes的加密和解密 def init self,key,mod...

解決OpenFetion突然無法登入問題

摘要 openfection是什麼東東就不用我多提了.最近在ubuntu裡面想給朋友發個飛信時,發現openfection不能正常登入了 密碼正確卻無法登入 於是google了下,發現此軟體需要 有空清理一下家目錄下面的.openfetion目錄 於是問題解決了.本文的目的是記錄一下這個事件,以及解...

解決Ubuntu桌面迴圈登入問題

ubuntu安裝了英偉達顯示卡驅動後,有時候驅動程式出錯就會導致桌面迴圈登入問題並且解析度很低。解決辦法 重灌英偉達驅動。一.按alt ctrl f1切換到字元介面,解除安裝已有的nvidia驅動程式 sudo apt get remove purge nvidia 注意一下purge前面是兩個減號...