Ingin menangid
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

97 lines
2.9 KiB

#!/usr/bin/python2.7
# -*- coding: utf-8 -*-
import sys
import random
import base64
def banner():
return '''
Welcome to our brand new crypto service
________ _______ __ __ ____________ ______ __________ _____ __________ _ __________________
/ ____/ //_/ ___// //_/ / ____/ __ \ \/ / __ \/_ __/ __ \ / ___// ____/ __ \ | / / _/ ____/ ____/
/ / __/ ,< \__ \/ ,< / / / /_/ /\ / /_/ / / / / / / / \__ \/ __/ / /_/ / | / // // / / __/
/ /_/ / /| |___/ / /| | / /___/ _, _/ / / ____/ / / / /_/ / ___/ / /___/ _, _/| |/ // // /___/ /___
\____/_/ |_/____/_/ |_| \____/_/ |_| /_/_/ /_/ \____/ /____/_____/_/ |_| |___/___/\____/_____/
version [v2.1.19]
'''
def print_usage(script_argv):
print '[==USAGE==]\n'
print 'Encrypt File \t: %s -e [plaintext_file] [key]' % script_argv
print 'Decrypt File \t: %s -d [encrypted_file] [key]' % script_argv
print 'Generate Key \t: %s -g' % script_argv
print 'Help \t\t: %s -h\n' % script_argv
def shift_key():
key = random.randint(0x1, 0xff)
return key
def shuffle_secret():
secret_out = ''
secret_str = ''.join('gksk-secret-code'.split('-'))
for count,loop in enumerate(secret_str):
if count % 2 == 0:
secret_out += ''.join([chr(ord(ch) + 0x3) for ch in loop])
else:
secret_out += loop
return secret_out
def encryption(plain, shift):
try:
ciphertext = ''
length_msg = 50
with open(plain, 'rb') as bin:
data = bin.read()
shift = int(shift)
alphabet = shuffle_secret() * length_msg
shifted_alphabet = alphabet[shift:] + alphabet[:shift]
for a, b in zip(data, shifted_alphabet):
ciphertext += chr(ord(a) + ord(b) ^ shift)
with open(plain + '.enc', 'wb') as bin:
bin.write(base64.b64encode(ciphertext))
except ValueError:
print "ValueError : Range key [0-255]"
exit()
def decryption(enc_file, key):
with open(enc_file, 'rb') as bin:
data = bin.read()
'''NOT IMPLEMENTED YET'''
with open(enc_file + '.trial', 'wb') as bin:
bin.write(data)
def main():
print banner()
script_argv = sys.argv[0]
try:
mode = sys.argv[1]
if mode == '-e':
plaintext_file = sys.argv[2]
key = sys.argv[3]
encryption(plaintext_file, key)
print "\nSECRET KEY : ", shuffle_secret()
print '\nThankyou for using our service :)\n'
elif mode == '-d':
encrypted_file = sys.argv[2]
key = sys.argv[3]
decryption(encrypted_file, key)
print '\nNot implemented yet. Upgrade to premium, only $99999\n'
elif mode == '-g':
print 'Key : ', shift_key()
elif mode == '-h':
print_usage(script_argv)
else:
print_usage(script_argv)
except IndexError:
print_usage(script_argv)
if __name__ == '__main__':
main()