36 lines
740 B
Python
Executable File
36 lines
740 B
Python
Executable File
#!python3
|
|
|
|
import zlib
|
|
from random import randint
|
|
import os
|
|
from Crypto.Cipher import Salsa20
|
|
|
|
flag = open("./flag").read()
|
|
|
|
|
|
def compress(text):
|
|
return zlib.compress(bytes(text.encode("utf-8")))
|
|
|
|
def encrypt(plaintext):
|
|
secret = os.urandom(32)
|
|
cipher = Salsa20.new(key=secret)
|
|
return cipher.nonce + cipher.encrypt(plaintext)
|
|
|
|
def main():
|
|
while True:
|
|
usr_input = input("Enter your text to be encrypted: ")
|
|
compressed_text = compress(flag + usr_input)
|
|
encrypted = encrypt(compressed_text)
|
|
|
|
nonce = encrypted[:8]
|
|
encrypted_text = encrypted[8:]
|
|
print(nonce)
|
|
print(encrypted_text)
|
|
print(len(encrypted_text))
|
|
|
|
if __name__ == '__main__':
|
|
main()
|
|
|
|
|
|
|