Python Cypher Script
Python Cypher Script
Code
Files that are encrypted will have a new extension for example:
test.txt.enc
Files that are encrypted will have a new extension for example:
test.txt.enc
To decrypt you use filename
test.txt
- Code:
#!/usr/bin/python3
# (c) J~Net 2021
#
# https://jnet.forumotion.com/t1734-python-cypher-script#2684
#
# ./menu.py
#
from Crypto import Random
from Crypto.Cipher import AES
import os
import os.path
from os import listdir
from os.path import isfile, join
import time
class Encryptor:
def __init__(self, key):
self.key=key
def pad(self, s):
return s + b"\0" * (AES.block_size - len(s) % AES.block_size)
def encrypt(self, message, key, key_size=256):
message=self.pad(message)
iv=Random.new().read(AES.block_size)
cipher=AES.new(key, AES.MODE_CBC, iv)
return iv + cipher.encrypt(message)
def encrypt_file(self, file_name):
with open(file_name, 'rb') as fo:
plaintext=fo.read()
enc=self.encrypt(plaintext, self.key)
with open(file_name + ".enc", 'wb') as fo:
fo.write(enc)
os.remove(file_name)
def decrypt(self, ciphertext, key):
iv=ciphertext[:AES.block_size]
cipher=AES.new(key, AES.MODE_CBC, iv)
plaintext=cipher.decrypt(ciphertext[AES.block_size:])
return plaintext.rstrip(b"\0")
def decrypt_file(self, file_name):
with open(file_name, 'rb') as fo:
ciphertext=fo.read()
dec=self.decrypt(ciphertext, self.key)
with open(file_name[:-4], 'wb') as fo:
fo.write(dec)
os.remove(file_name)
def getAllFiles(self):
dir_path=os.path.dirname(os.path.realpath(__file__))
dirs=[]
for dirName, subdirList, fileList in os.walk(dir_path):
for fname in fileList:
if (fname != 'script.py' and fname != 'data.txt.enc'):
dirs.append(dirName + "\\" + fname)
return dirs
def encrypt_all_files(self):
dirs=self.getAllFiles()
for file_name in dirs:
self.encrypt_file(file_name)
def decrypt_all_files(self):
dirs=self.getAllFiles()
for file_name in dirs:
self.decrypt_file(file_name)
key=b'[EX\xc8\xd5\xbfI{\xa2$\x05(\xd5\x18\xbf\xc0\x85)\x10nc\x94\x02)j\xdf\xcb\xc4\x94\x9d(\x9e'
enc=Encryptor(key)
clear=lambda: os.system('clear')
if os.path.isfile('data.txt.enc'):
while True:
password=str(input("Enter password: "))
enc.decrypt_file("data.txt.enc")
p=''
with open("data.txt", "r") as f:
p=f.readlines()
if p[0] == password:
enc.encrypt_file("data.txt")
break
while True:
clear()
print("Welcome To The File Encyption Menu")
print("")
choice=int(input(
"1. Press 1 To Encrypt File.\n2. Press 2 To Decrypt File.\n3. Press 3 To Encrypt All Files In The Folder.\n4. Press 4 To Decrypt All Files In The Folder.\n5. Press 5 To Exit.\n"))
clear()
if choice == 1:
enc.encrypt_file(str(input("Enter name of file to encrypt: ")))
elif choice == 2:
enc.decrypt_file(str(input("Enter name of file to decrypt: ")))
elif choice == 3:
enc.encrypt_all_files()
elif choice == 4:
enc.decrypt_all_files()
elif choice == 5:
exit()
else:
print("Please select a valid option!")
else:
while True:
clear()
password=str(input("Setting up stuff. Enter a password that will be used for decryption: "))
repassword=str(input("Confirm password: "))
if password == repassword:
break
else:
print("Passwords Mismatched!")
f=open("data.txt", "w+")
f.write(password)
f.close()
enc.encrypt_file("data.txt")
print("Please restart the program to complete the setup")
time.sleep(15)
- Code:
sudo pip install pycrypto
Then make Executable
sudo chmod +x menu.py
Then Run
./menu.py
Files that are encrypted will have a new extension for example:
test.txt.enc
Files that are encrypted will have a new extension for example:
test.txt.enc
To decrypt you use filename
test.txt
Similar topics
» Python Decryption Ceaser Cypher Shift Cypher 2021
» Python Email Script Via Gmail
» Slowloris dos attack python script
» Randomize Mac Address In Linux With Python Script
» Create a python password and checking script
» Python Email Script Via Gmail
» Slowloris dos attack python script
» Randomize Mac Address In Linux With Python Script
» Create a python password and checking script
Permissions in this forum:
You cannot reply to topics in this forum
|
|