def generate_hash(self): self._get_keys() c1 = DES.encrypt(self.text, self.key1, padding=False) c2 = DES.encrypt(self.text, self.key2, padding=False) zeros = '0' * 16 h1 = hex(bitarray2int(string2bits(c1)))[2:] h1 = zeros[len(h1):] + h1 h2 = hex(bitarray2int(string2bits(c2)))[2:] h2 = zeros[len(h2):] + h2 return h1 + h2
def encrypt(self): text = self.textEdit.toPlainText() key = self.textEdit_2.toPlainText() print(key) print(text) des = DES() encrypt_text = des.encrypt(key, text) print(base64.b64encode(encrypt_text)) self.textEdit_3.setText(str(base64.b64encode(encrypt_text))[2:-2])
def des_method(client_socket): # send methond message method_message = "method:des" try: client_socket.send(method_message) client_socket.recv(1024) except: client_socket.close() print "\n[*] Connection is broke." return # send des key print "[*] Please enter the key, and the length must longer than 8 characters." while True: key_text = raw_input("> ") if len(key_text) > 8: break else: print "[!] The length must longer than 8 characters.\ Please try again:)." try: client_socket.send(key_text) client_socket.recv(1024) except: client_socket.close() print "\n[*] Connection is broke." return print "[*] Please enter the message:" # send encrypted message while True: try: plain_text = raw_input('> ') cipher_text = DES.encrypt(plain_text, key_text) print "[*] The cipher is [%s]" % cipher_text client_socket.send(cipher_text) response_content = client_socket.recv(1024) print response_content except: client_socket.close() print "\n[*] Connection is broke." return
from des import DES a = DES("hllowrld", "0123456789abcdef") print a.encrypt()
# Author: soachishti ([email protected]) # Link: http://page.math.tu-berlin.de/~kant/teaching/hess/krypto-ws2006/des.htm from des import DES d = DES() print "\n" + "=" * 5 + "HEX Demo" + "=" * 5 + "\n" hex_message = "0123456789abcdef" key = "133457799BBCDFF1" # Must be hex encryted = d.encrypt(hex_message, key) decrypted = d.decrypt(encryted, key) print "Message: ", hex_message print "Key: ", key print "Encryted: ", encryted print "Decrypted: ", decrypted print "\n" + "=" * 5 + "ASCII Demo" + "=" * 5 + "\n" ascii_message = "OwaisAli" hex_message = d.process_message(ascii_message) encryted = d.encrypt(hex_message, key) decrypted = d.decrypt(encryted, key) print "ASCII Message: ", ascii_message print "Hex Message: ", hex_message print "Key: ", key print "Encryted: ", encryted print "Decrypted: ", decrypted.decode('hex').split('\0')[0]
from des import DES while True: mode = input('Select DES mode (E: Encryption, D: Decryption)\nor Enter Q to quit\nSelection: ') if mode == 'Q' or mode == 'q': break elif mode == 'E' or mode == 'e': key = input('Enter the key in hex: ') plain = input('Enter the plain text in hex: ') des = DES(key=key, plain=plain) print('Cipher text: ' + des.encrypt()) elif mode == 'D' or mode == 'd': key = input('Enter the key in hex: ') cipher = input('Enter the cipher text in hex: ') des = DES(key=key, cipher=cipher) print('Plain text: ' + des.decrypt()) print()
from des import DES d = DES('qwertyui') cipher = d.encrypt('hello world!') print(cipher) deciphered = d.decrypt(cipher, msg_in_bits=True) print(deciphered)
import os import random import threading import time from des import DES d = DES() input = 'test' c = d.encrypt(input)[0] def des_brute_force(key: list): d.subkeys = d._prepare_keys(key) return d.decrypt(c).strip() == input def random_key(): return random.choices([0, 1], k=64) class Task(threading.Thread): def run(self): print('Starting {}'.format(self.name)) start = time.time() while True: r_k = random_key() if des_brute_force(r_k): end = time.time() print('Found key: {}'.format(r_k)) print('Elapsed: {}s'.format(end - start))
def main(f_input="input.txt"): cipher = DES() #cipher.encrypt("abcdefgh") c = cipher.encrypt(f_input) p = cipher.decrypt(c)
def mix_method(client_socket): # send method method_message = "method:mix" client_socket.send(method_message) client_socket.recv(1024) prime_length = 512 rsaKeys = rsa.RSAKey() pub_key_client, priv_key_client = rsaKeys.gen_keys(prime_length) # send public key print "[*] RSA Keys generated. Sending public key to the server..." pub_key_string_client = str(pub_key_client[0]) + "," + str(pub_key_client[1]) print pub_key_string_client try: client_socket.send(pub_key_string_client) except: client_socket.close() print "\n[*] Connection is broke." return print "[*] Public key sent. Waiting for the server public key..." # waiting for public key of the client print "Wating for public key of the server" try: pub_key_string_server = client_socket.recv(2048) pub_key_array_server = pub_key_string_server.split(',') pub_key_server = (long(pub_key_array_server[0]), long(pub_key_array_server[1])) except: client_socket.close() print "\n[*] Connection is broke." return print "[*] Server public key accepted." print pub_key_server # generate des key print "[*] Please enter des key, and the length must longer than 8 characters." while True: des_key = raw_input("> ") if len(des_key) > 8: break else: print "[!] The length must longer than 8 characters.\ Please try again:)." # encryte des key with server public key rsaKeys = rsa.RSAKey() try: client_socket.send(rsaKeys.encrypt(pub_key_server, des_key)) print client_socket.recv(1024) except: client_socket.close() print "\n[*] Connection is broke." return # send encrypted digest print "[*] Please enter the message." while True: try: plain_text = raw_input('> ') digest_text = sha1.sha1(plain_text) print "[*] The digest is [%s]" % digest_text client_socket.send(rsaKeys.encrypt(priv_key_client, digest_text)) response_content = client_socket.recv(1024) print response_content cipher_text = DES.encrypt(plain_text, des_key) client_socket.send(cipher_text) response_content = client_socket.recv(1024) print response_content except: client_socket.close() print "\n[*] Connection is broke." return
def hexdigest(self): self._pad_key() c = DES.encrypt(self.text, self.deskey, padding=False) zeros = '0' * 16 h = hex(bitarray2int(string2bits(c)))[2:] return zeros[len(h):] + h
text = ''.join([char for char in text.lower() if char in 'abcdefghijklmnopqrstuvwxyz']) def build_freq(text): freq = {char: 0 for char in 'abcdefghijklmnopqrstuvwxyz'} for char in text: if char in freq: freq[char] += 1 return freq def plot(text, max_freq_plaintext, label, marker): freq = build_freq(text) rel_freq = {char: freq[char]/max_freq_plaintext for char in freq} plt.plot(sorted(rel_freq.values(), reverse=True), label=label, marker=marker) ccipher = CaeserCipher() vcipher = VigenereCipher("cryptography") pcipher = PlayfairCipher("cryptography") dcipher = DES() max_freq_plaintext = max(build_freq(text).values()) plot(text, max_freq_plaintext, 'Plaintext', '>') plot(ccipher.encrypt(text), max_freq_plaintext, 'Caeser Cipher', '<') plot(vcipher.encrypt(text), max_freq_plaintext, 'Vigenere Cipher', '+') plot(pcipher.encrypt(text), max_freq_plaintext, 'Playfair Cipher', 'x') plot(dcipher.encrypt("monarchy", text), max_freq_plaintext, 'DES', 'o') plt.xlabel('Frequency ranked letters') plt.ylabel('Relative frequency') plt.title("Simmon's Experiment") plt.legend() plt.show()