python簡單的加密解密檔案

2021-10-09 16:42:14 字數 1534 閱讀 6631

# aes-demo #採用aes對稱加密演算法

import base64

from crypto.cipher import aes

def add_to_16(value): # str不是16的倍數那就補足為16的倍數

while len(value) % 16 != 0:

value += '\0'

return str.encode(value) # 返回bytes

def file_content(file, read_type):

with open(file, read_type) as targetfile:

for line in targetfile:

yield line

def encrypt_oracle(file, key):

text = ""

for i in file_content(file, 'rb'):

text += str(i)

aes = aes.new(add_to_16(key), aes.mode_ecb) # 初始化加密器

encrypt_aes = aes.encrypt(add_to_16(text)) # 先進行aes加密

encrypted_text = str(base64.encodebytes(encrypt_aes), encoding='cp936') # 用base64轉成字串形式 # 執行加密並轉碼返回bytes

with open("encrypt_file", "w+") as f:

f.write(encrypted_text)

def decrypt_oralce(encrypt_file, key):

text = ""

for i in file_content(encrypt_file, 'r'):

text += str(i)

aes = aes.new(add_to_16(key), aes.mode_ecb) # 初始化加密器

base64_decrypted = base64.decodebytes(text.encode(encoding='cp936')) # 優先逆向解密base64成bytes

decrypted_text = str(aes.decrypt(base64_decrypted), encoding='gbk').replace('\0', '') # 執行解密密並轉碼返回str

decrypted_text2 = eval(decrypted_text)

with open("original_file.zip", "wb+") as f:

f.write(decrypted_text2)

# 加密ss.zip檔案成encrypt_file,"1111"是秘鑰,隨便填

encrypt_oracle("ss.zip", "1111")

# 解密encrypt_file,同時輸入秘鑰解密

decrypt_oralce("encrypt_file", "1111")

檔案的加密解密

專案需要對一些配置檔案進行加密處理,自己實現了簡單的demo,原理是對乙個字元使用同乙個key進行偶數次異或等於自身。如下 include stdafx.h include include include include std string getfullpath const char filen...

加密解密檔案

1 decrypt 方法允許解密使用 encrypt 方法加密的檔案。decrypt 方法只能解密使用當前使用者帳戶加密的檔案。23 decrypt 方法要求獨佔訪問被解密的檔案,如果有其他程序正在使用該檔案,此方法將引發異常。如果檔案沒有加密,則 decrypt 將返回乙個非零值,這表示成功。45...

檔案加密解密 URl引數加密解密

sliverlight 加密解密 public static class encryption endregion region silverlight密碼解密 解密資料 加密後的字串 加密前的字串 public static string decrypt string input endregio...