コード例 #1
0
 def decryptMsg(self, newCipher, keybv, totalCipherBlock):
     decryptedpt = BitVector(size=0)
     for i in range(0, totalCipherBlock):
         msg = newCipher[i * self.BLOCKSIZE:(i + 1) *
                         self.BLOCKSIZE] ^ keybv
         decryptedpt += msg
     return decryptedpt.get_bitvector_in_ascii()
コード例 #2
0
    def decode(self, image_path):
        """
        Attempts to decode message hidden in the image at given path
        :param image_path: Path to image
        :return: Hidden message string
        """
        image = Image.open(image_path)
        image_rgb = image.convert("RGB")
        bit_string = ""

        width, height = image.size
        for j in range(height):
            for i in range(
                    width
            ):  # Collect message bits until NULL terminator is reached
                (red, green, blue) = image_rgb.getpixel((i, j))
                if len(bit_string
                       ) >= 16 and bit_string[-16:] == "0000000000000000":
                    break
                else:
                    bit_string += bin(red)[-2:]

                if len(bit_string
                       ) >= 16 and bit_string[-16:] == "0000000000000000":
                    break
                else:
                    bit_string += bin(green)[-2:]

                if len(bit_string
                       ) >= 16 and bit_string[-16:] == "0000000000000000":
                    break
                else:
                    bit_string += bin(blue)[-2:]

            else:  # If inner loop breaks, break out of outer loop
                continue
            break

        message_bit_vector = BitVector(bitstring=bit_string)
        return message_bit_vector.get_bitvector_in_ascii()
コード例 #3
0
ファイル: decrypter.py プロジェクト: AAB94/ME-SEM-2
    sample_cipher = []

    key = None

    bv = BitVector(filename="sample_ciphertext.txt")

    #
    while (bv.more_to_read):
        sample_cipher.append(bv.read_bits_from_file(64))

    print("\t** Possible Keys **")

    for k in rows:
        k = BitVector(bitstring=k[0])
        print k.get_bitvector_in_ascii()
        DES(BitVector(bitstring=k), "sample_plaintext.txt", "test_cipher.txt")
        if IsCipherEqual(sample_cipher):
            key = k

    conn.close()

    file_out = open("key.txt", "w")
    key.write_to_file(file_out)

    message_file = 'target_ciphertext.txt'
    decrypted_file = 'decrypted.txt'
    decrypt = True
    if decrypt:
        DES(key, message_file, decrypted_file, reverse=True)
        fr = open('decrypted.txt', 'r')