# 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...