def decrypt_ECB_by(self, data, key): # 處理密鑰 key = str(key) # 避免近來數值太奇怪 轉成str key = sha256(key.encode('utf-8')).digest() # 將key做utf-8解碼成bytes放入hash aes = new(key, MODE_ECB) # 建置AES加密核心 使用key當AESkey 模式ECB # 解密資料 將data先解密玩 再用utf-8顯示 data = aes.decrypt(data) # 將資料轉回utf8 return data
def decrypt_ECB(self, data, key): # 處理密鑰 key = str(key) # 避免近來數值太奇怪 轉成str key = sha256(key.encode('utf-8')).digest() # 將key做utf-8解碼成bytes放入hash aes = new(self.pad_key(key), MODE_ECB) # 建置AES加密核心 使用key當AESkey 模式ECB # 解密資料 將data先解密玩 再用utf-8顯示 data = str(aes.decrypt(data), encoding='utf-8', errors="ignore") # 將資料轉回utf8 return data
def decrypt_CBC_speed(self, data, key, _IV=16 * b'\x00'): # 處理密鑰 key = str(key) # 避免近來數值太奇怪 轉成str key = sha256(key.encode('utf-8')).digest() # 將key做utf-8解碼成bytes放入hash aes = new(self.pad_key(key), MODE_CBC, _IV) # 建置AES加密核心 使用key當AESkey 模式CBC _IV # 解密資料 data = str(aes.decrypt(data), encoding='utf-8', errors="ignore") # 將資料轉回utf8 return data
def encrypt_ECB(self, data, key): # 處理密鑰 key = str(key) # 避免近來數值太奇怪 轉成str key = sha256(key.encode('utf-8')).digest() # 將key做utf-8解碼成bytes放入hash aes = new(self.pad_key(key), MODE_ECB) # 建置AES加密核心 使用key當AESkey 模式ECB # 處理資料 將key做utf-8解碼成bytes補足16bits data = data.encode(encoding="utf-8") data = self.pad(data) # 加密資料 return aes.encrypt(data)
def encrypt_CBC_speed(self, data, key, _IV=16 * b'\x00'): # 處理密鑰 key = str(key) key = sha256(key.encode('utf-8')).digest() aes = new(self.pad_key(key), MODE_CBC, _IV) # 處理資料 # data = data.encode(encoding="utf-8") data = self.pad(data) # 加密資料 return aes.encrypt(data)