def hide_data(in_img,data):
    carrier = cv.LoadImage(in_img)
    steg = LSBSteg(carrier)
    steg.hideText(data)
    out_img = in_img.split(".")[0]+".png"
    steg.saveImage(out_img)
    return out_img
Ejemplo n.º 2
0
def unhide_binary(in_img):
    inp = cv.LoadImage("res.png")
    steg = LSBSteg(inp)
    bin = steg.unhideBin()
    f = open("res","wb") #Write the binary back to a file
    f.write(bin)
    f.close()
Ejemplo n.º 3
0
def main():
  tmpdir = os.path.dirname(os.path.abspath(__file__)) + '/tmp'
  os.chdir(tmpdir)

  lines    = open('outtiny.m3u8', 'r').read()

  llen = len(lines)+64
  wh = math.ceil(llen/3)
  print('文本大小:%s,图片尺寸:%s' % (llen, wh))

  new_img_file_name = new_image(wh, wh, 'out', show_image=False)
  print('生成图片:%s' % (new_img_file_name))

  in_img = cv2.imread(new_img_file_name)
  steg = LSBSteg(in_img)
  done = base64.b64encode(lines.encode('utf-8'))
  done = zlib.compress(done)
  res = steg.encode_binary(done)
  cv2.imwrite('outtiny.png', res)

  m3u8url = uploader().handle('outtiny.png')
  if _('PROXY') == 'YES':
    m3u8url = str(base64.b64encode(m3u8url.encode('utf-8')),'utf8')
    print('This video\'s m3u8 has been published to: %s/p/%s' % (_('APIURL'),m3u8url))
  else:
    print('This video\'s m3u8 has been published to: %s/p/%s' % (_('APIURL'),m3u8url))
Ejemplo n.º 4
0
def decode():
    file = request.files['file_gambar']
    img = numpy.fromstring(file.read(), numpy.uint8)
    im = cv2.imdecode(img, cv2.IMREAD_UNCHANGED)
    steg = LSBSteg(im)
    pesan = unicode(steg.decode_text(), "utf8")
    print(pesan)
    return render_template("index.html", pesan=pesan)
Ejemplo n.º 5
0
def r_encode():
    if str(path.get()[-4::])==".png":
        steg = LSBSteg(cv2.imread(path.get()))
        img_encoded = steg.encode_text(b_text.get("0.0","end"))
        cv2.imwrite(str(path.get()[:-4:]) + ".encoded.png", img_encoded)
        b_warning.set("The encoded picture is done (in the original folder)")
    else:
        b_warning.set("It's not a png picture")
Ejemplo n.º 6
0
def hide_text(text, in_img, out_img="res.png"):
    carrier = cv.imread(in_img)
    steg = LSBSteg(carrier)
    if (os.path.isfile(text)):
        f = open(text,'r')
        text = f.read()

    steg.hideText(text)
    steg.saveImage(out_img)
Ejemplo n.º 7
0
def encode():
    if request.method == 'POST':
        file = request.files['file_gambar']
        text = request.form['text']
        img = numpy.fromstring(file.read(), numpy.uint8)
        steg = LSBSteg(cv2.imdecode(img, cv2.IMREAD_UNCHANGED))
        img_encoded = steg.encode_text(text)
        cv2.imwrite("my_new_image.png", img_encoded)
        return render_template("index.html", pesan="berhasil menyisipkan")
Ejemplo n.º 8
0
def test():
    if request.method == 'POST':
        f = request.files['image']
        f.save('prof_pic_encoded.png')
        hash = request.form['hash'].strip()
        img = LSBSteg(cv2.imread('prof_pic_encoded.png'))
        txt = img.decode_text()
        if 'facebook' not in txt or txt == hash:
            return 'True'
        else:
            return 'False'
Ejemplo n.º 9
0
def encode():
    if request.method == 'POST':
        f = request.files['image']
        f.save('prof_pic_encoded.png')
        hash = request.form['hash'].strip()
        img = LSBSteg(cv2.imread('prof_pic_encoded.png'))
        txt = img.decode_text()
        if 'facebook' not in txt or txt == hash:
            cv2.imwrite('prof_pic_secure.png', img.encode_text(hash))
            with open('prof_pic_secure.png', 'rb') as image_file:
                return base64.b64encode(image_file.read())
        else:
            return 'False'
Ejemplo n.º 10
0
def r_decode():
    if str(path.get()[-4::])==".png":
        img = cv2.imread(path.get())
        detext = LSBSteg(img).decode_text()
        b_text.config(state="normal")
        b_text.insert("0.0",detext)
    else:
        b_warning.set("It's not a png picture")
Ejemplo n.º 11
0
def extractMSG(path2Image, path2Video):
    # Extract from picture
    im = cv.LoadImage(path2Image)
    steg = LSBSteg(im)
    s = steg.unhideText()

    tmpFile = open("tmp/PositionsList.txt", "w")
    tmpFile.write(s)
    tmpFile.close()

    #Read Video file frames
    absPath = path2Video
    vidcap = cv2.VideoCapture(absPath)

    count = 0
    success, image = vidcap.read()
    while success:
        success, image = vidcap.read()
        cv2.imwrite("tmp/frame%d.jpg" % count, image)     # save frame as JPEG file
        count += 1

    # extract message from frames
    fNum = 0
    secMSG = ""
    for line in open("tmp/PositionsList.txt"):
        word = int(line.strip())
        if word != -1:
            cPos = word - fNum
            imgName = "tmp/frame%d.jpg" % fNum
            try:
                imageFile = imgName
                data = open(imageFile, "rb").read()
            except IOError:
                print "Image file %s not found" % imageFile
                raise SystemExit

        msgOrd = data[cPos]
        secMSG = secMSG + msgOrd
        #fNum = fNum + 1
        fNum = (fNum + 1) % count

    #shutil.rmtree('tmp')
    return secMSG
Ejemplo n.º 12
0
def hide_data(in_img, data):
    carrier = cv.LoadImage(in_img)
    steg = LSBSteg(carrier)
    steg.hideText(data)
    out_img = in_img.split(".")[0] + ".png"
    steg.saveImage(out_img)
    return out_img
Ejemplo n.º 13
0
def forText():
    #encoding
    file = open('abc.txt', 'rb')
    val = ''
    val = val + file.read()
    steg = LSBSteg(cv2.imread("download.jpeg"))
    img_encoded = steg.encode_text(val)
    cv2.imwrite("my_new_image.png", img_encoded)
    #decoding
    im = cv2.imread("my_new_image.png")
    steg = LSBSteg(im)
    print("Text value:", steg.decode_text())
Ejemplo n.º 14
0
__author__ = 'root'

from LSBSteg import LSBSteg
import cv2
import numpy as np

im = cv2.imread('toomuchgreen.png')
steg = LSBSteg(im)
#dec = steg.unhideImage()
#cv2.imwrite('recovered', dec)
dec = steg.unhideText()
print dec
Ejemplo n.º 15
0
from LSBSteg import LSBSteg
import cv2.cv as cv
import sys

im = cv.LoadImage("res.png")
steg = LSBSteg(im)
print "Text value:", steg.unhideText()
Ejemplo n.º 16
0
from LSBSteg import LSBSteg
import cv2
import matplotlib.pyplot as plt

#encoding
steg = LSBSteg(cv2.imread("carrier.png"))
new_im = steg.encode_image(cv2.imread("lena.png"))
cv2.imwrite("new_image.png", new_im)

#decoding
steg = LSBSteg(cv2.imread("new_image.png"))
orig_im = steg.decode_image()
cv2.imwrite("recovered.png", orig_im)
Ejemplo n.º 17
0
def hide_payload(input_img, payload, output_img):
    carrier = cv.LoadImage(input_img)
    steg = LSBSteg(carrier)
    steg.hideBin(payload)
    steg.saveImage(output_img)
Ejemplo n.º 18
0
from LSBSteg import LSBSteg
import cv
from sys import argv
#Hide
string = "Hello there"
carrier = cv.LoadImage(argv[1])
steg = LSBSteg(carrier)
steg.hideText(string)
steg.saveImage("hidden.png")

#retrieve
im = cv.LoadImage("hidden.png")
steg2 = LSBSteg(im)
print steg2.unhideText()
Ejemplo n.º 19
0
def hideMessage(secretMessage, path2Video, path2Image, msgLength=0, videoLength=0):
    # Read Video and check if video frame number is enough
    enoughSize = True

    while enoughSize:       # extracting frames
        vidcap = cv2.VideoCapture(path2Video)                        #print ("success")
    
        frameNumbers = vidcap.get(cv.CV_CAP_PROP_FRAME_COUNT)     #print ( frameNumbers )
        fps = vidcap.get(cv.CV_CAP_PROP_FPS)                    #print ( fps )
        videoLength = frameNumbers / fps    # seconds             #print ( videoLength )

        count = 0
        if videoLength < (msgLength / (fps*2)):
            print ("Sorry!!! not enough space to embed the message, try another video (more time)")
            n= raw_input('press n to try another video or any other key to exit:')
            if n != "n":
                sys.exit()
        else:
            # extracting frames
            enoughSize = False
            success, image = vidcap.read()
            while success:
                success, image = vidcap.read()
                cv2.imwrite("tmp/frame%d.jpg" % count, image)     # save frame as JPEG file
                count += 1

    #split msg char, search and create positions for chars
    msgList = list(secretMessage)
    c = 0

    found = False #infinite loop here
    for msgChar in msgList:
        while not(found):
            found = foundChar(msgChar, c)
            c = (c+1) % count
        found = False

    # Write positions list to a text file
    tmpFile = open("tmp/tmpFile.txt", "w")
    tmpFile.write('\n'.join('%s %s' % x for x in positionList))
    tmpFile.close()

    # read from file and save in string
    # limitations of LSBStego = 1024
    dataEm =""
    for line in open("tmp/tmpFile.txt"):
        words = line.strip().split(',')
        dataEm = dataEm + " " + words[0]
        dataEm = dataEm + "\n"

    pathList = path2Image.split("/")
    imgNameJPG = pathList[-1]
    imgName = imgNameJPG.split(".")

    carrier = cv.LoadImage(path2Image)
    steg = LSBSteg(carrier)
    steg.hideText(dataEm)
    imgNamePNG = imgName[0]+".png"
    #imgNamePNG = 'charmap.png'
    steg.saveImage(imgNamePNG)
    return imgNamePNG
Ejemplo n.º 20
0
def talk(s):
    while True:
        try:
            pan=int(input('1:rsa 2:LSB 3:不经意 4:零知识 5:签名 6:image rsa 7:image lsb'))
            
            info=input('>>>')##
        except Exception(e):
            print('can\'t input')
            exit()
        try:
            
            global bob_pub
            global bob_priv
            global my_pub
            global my_priv
            if pan==1:
                #global bob_pub
                #global bob_priv
                crypto = rsa.encrypt(info.encode('utf8'),bob_pub)
                #secret = lsb.hide("lena.png",crypto)
                #s.send(pickle.dumps((bob_pub,bob_priv,crypto)))
                s.send(pickle.dumps((1,(bob_pub,bob_priv,crypto))))
                #s.send(info.encode('utf-8'))
            elif pan==2:
                secret=lsb.hide("lena.png",info)
                # secret = lsb.hide("lena.png", info)
                # secret.save("lena_hide.png")
                # s.send(pickle.dumps((2,"")))
                s.send(pickle.dumps((2,secret)))
            elif pan==3:#不经意

                crypto = rsa.encrypt(info.encode('utf8'),bob_pub)
                s.send(pickle.dumps((3,(bob_pub,bob_priv,crypto))))
            elif pan==4:#零知识
                s.send(pickle.dumps((4,info.encode('utf8'))))    
            elif pan==5:#签名
                #global bob_pub
                #global bob_priv
                crypto = rsa.encrypt(info.encode('utf8'),my_priv)
                #secret = lsb.hide("lena.png",crypto)
                #s.send(pickle.dumps((bob_pub,bob_priv,crypto)))
                s.send(pickle.dumps((5,(my_priv,my_pub,crypto))))
                #s.send(info.encode('utf-8'))
            elif pan==6:
                aes_key = rsa.randnum.read_random_bits(128)
                cipher = AES.new(aes_key, AES.MODE_ECB)
                cipher_data = cipher.encrypt(pad(pickle.dumps(cv2.imread(info)), AES.block_size))
                encrypted_aes_key = rsa.encrypt(aes_key, bob_pub)
                s.send(pickle.dumps((6,(bob_pub,bob_priv,cipher_data,encrypted_aes_key))))
            elif pan==7:
                steg = LSBSteg(cv2.imread("carrier.png"))
                new_im = steg.encode_image(cv2.imread(info))
                s.send(pickle.dumps((7,new_im)))
            
            elif pan==8:#不经意
                aes_key = rsa.randnum.read_random_bits(128)
                cipher = AES.new(aes_key, AES.MODE_ECB)
                cipher_data = cipher.encrypt(pad(pickle.dumps(cv2.imread(info)), AES.block_size))
                encrypted_aes_key = rsa.encrypt(aes_key, bob_pub)
                s.send(pickle.dumps((8,(bob_pub,bob_priv,cipher_data,encrypted_aes_key))))

            elif pan==9:#零知识
                s.send(pickle.dumps((9,info.encode('utf8'))))
            elif pan==10:#签名
                aes_key = rsa.randnum.read_random_bits(128)
                cipher = AES.new(aes_key, AES.MODE_ECB)
                cipher_data = cipher.encrypt(pad(pickle.dumps(cv2.imread(info)), AES.block_size))
                encrypted_aes_key = rsa.encrypt(aes_key, my_priv)
                s.send(pickle.dumps((10,(my_priv,my_pub,cipher_data,encrypted_aes_key))))
        except Exception(e):
            print(e)
            exit()
Ejemplo n.º 21
0
import cv
from LSBSteg import LSBSteg

import sys
imagename = sys.argv[1]

im = cv.LoadImage(imagename)
steg = LSBSteg(im)
print steg.unhideText()
Ejemplo n.º 22
0
def unhide_text(in_img):
    im = cv.imread(in_img)
    steg = LSBSteg(im)
    print(steg.unhideText())
Ejemplo n.º 23
0
def unhide_image(in_img,out_img):
    inp = cv.LoadImage(in_img)
    steg = LSBSteg(inp)
    dec = steg.unhideImage()
    cv.SaveImage(out_img, dec) #Image retrieve into the other image
Ejemplo n.º 24
0
def lsbAlgoDefault(encrypt_decrypt, secret_string, encryption_technique):
    # if (algo_technique == technique_options[0]):
    # LSB:: Text Steganography
    if (encrypt_decrypt == options[0]):
        print("LSB:::Text::: Encrypt")
        # Warning for secret string
        if (len(secret_string) == 1):
            print("Empty Secret:: Showing warning")
            tk.messagebox.showwarning(
                "Data Required", "Please enter secret data to be encoded")
            return
        # encoding
        steg = LSBSteg(cv2.imread(image_path))
        file_name = encryption_technique + "Plain.txt"
        text_file = open(file_name, "w")
        text_file.write(str(secret_string))
        text_file.close()
        if encryption_technique == "OTP":
            enc = OneTimePad(secret_string, "Plain")
            enc_string = enc.run(encrypt_decrypt)

        elif encryption_technique == "RSA":
            enc = RSACipher(secret_string, "Plain")
            enc_string = enc.run(encrypt_decrypt)

        elif encryption_technique == "AES":
            enc = AESCipher(secret_string, "Plain")
            enc_string = enc.run(encrypt_decrypt)

        elif encryption_technique == "DES":
            enc = DESCipher(secret_string, "Plain")
            enc_string = enc.run(encrypt_decrypt)

        img_encoded = steg.encode_text(enc_string)
        cv2.imwrite("secret/secret.png", img_encoded)
        displayImage("secret/secret.png")
        img1 = cv2.imread(image_path)
        img2 = cv2.imread("secret/secret.png")
        imgA = cv2.cvtColor(img1, cv2.COLOR_BGR2GRAY)
        imgB = cv2.cvtColor(img2, cv2.COLOR_BGR2GRAY)
        compare_images(imgA, imgB, "LSB", encryption_technique)
    else:
        print("LSB:::Text::: Decrypt")
        # decoding
        print(image_path)
        im = cv2.imread(image_path)
        steg = LSBSteg(im)
        secret = steg.decode_text()

        print("Secret is", secret)

        if encryption_technique == "OTP":
            dec = OneTimePad(secret, "Plain")
            secret_message = dec.run(encrypt_decrypt)

        elif encryption_technique == "RSA":
            dec = RSACipher(secret, "Plain")
            secret_message = dec.run(encrypt_decrypt)

        elif encryption_technique == "AES":
            dec = AESCipher(secret, "Plain")
            secret_message = dec.run(encrypt_decrypt)

        elif encryption_technique == "DES":
            dec = DESCipher(secret, "Plain")
            secret_message = dec.run(encrypt_decrypt)

        filename = encryption_technique + "Plain.txt"
        key_file = open(filename, "r")
        original_message = key_file.readline()
        key_file.close()
        precentage_comparison = compare_strings(original_message,
                                                secret_message)
        print("The strings are equal by", precentage_comparison, "parts")
        addtofile("LSB", encryption_technique[:3], precentage_comparison)
        #dec = OneTimePad(secret, "Plain")
        #secret_message = dec.run(encrypt_decrypt)
        displaySecret(secret_message)
        print("Text value:", secret_message)
Ejemplo n.º 25
0
def retrieve_data(img):
    print img
    im = cv.LoadImage(img)
    steg = LSBSteg(im)
    return steg.unhideText()
Ejemplo n.º 26
0
import cv
from LSBSteg import LSBSteg
#Hide
str = "Hiding Text in an image"
import sys
imagename = sys.argv[1]
textstring = sys.argv[2]
carrier = cv.LoadImage(imagename)
steg = LSBSteg(carrier)
steg.hideText(textstring)
steg.saveImage(imagename + ".png")  #Image that contain datas
Ejemplo n.º 27
0
from LSBSteg import LSBSteg
import cv2.cv as cv
import sys
str = "Hello World"
carrier = cv.LoadImage("maxresdefault.jpg")

steg = LSBSteg(carrier)
steg.hideText(str)
steg.saveImage("res.png")  #Image that contain datas
def retrieve_data(img):
    print img
    im = cv.LoadImage(img)
    steg = LSBSteg(im)
    return steg.unhideText()
Ejemplo n.º 29
0
    def do_POST(self):
        if self.path == "/send":
            form = cgi.FieldStorage(fp=self.rfile,
                                    headers=self.headers,
                                    environ={
                                        'REQUEST_METHOD':
                                        'POST',
                                        'CONTENT_TYPE':
                                        self.headers['Content-Type'],
                                    })

            option = form["option"].value
            #filename = form['file'].filename
            #print filename
            hash = random.getrandbits(128)
            msg = ""
            if option == "encodeText":
                print "encodeText"
                filename = form['file1'].filename
                hash = str(random.getrandbits(128))
                encodeText = form["encodeText"].value
                data = form['file1'].file.read()
                print encodeText
                open("tmp/%s_%s" % (hash, filename), "wb").write(data)
                carrier = cv.LoadImage("tmp/%s_%s" % (hash, filename))
                steg = LSBSteg(carrier)
                steg.hideText(encodeText)
                steg.saveImage(("tmp/%s_%s_out.png" % (hash, filename)))
                msg = "<html><head></head><body>Thanks, <a href='tmp/%s_%s_out.png'>Download Your Encode Image</a></body><html>" % (
                    hash, filename)
            elif option == "decodeText":
                print "decodeText"
                filename = form['file1'].filename
                data = form['file1'].file.read()
                print filename
                hash = str(random.getrandbits(128))
                open("tmp/%s_%s" % (hash, filename), "wb").write(data)
                im = cv.LoadImage("tmp/%s_%s" % (hash, filename))
                steg = LSBSteg(im)
                unhideText = steg.unhideText()
                print unhideText
                #print steg.unhideText()
                msg = "<html><head></head><body>Thanks, your texts is : %s</body><html>" % unhideText
            elif option == "encodeImage":
                print "encodeImage"
                filename1 = form['file1'].filename
                filename2 = form['file2'].filename
                print filename1
                print filename2
                hash1 = str(random.getrandbits(128))
                hash2 = str(random.getrandbits(128))
                data = form['file1'].file.read()
                open("tmp/%s_%s" % (hash1, filename1), "wb").write(data)
                data = form['file2'].file.read()
                open("tmp/%s_%s" % (hash2, filename2), "wb").write(data)

                imagetohide = cv.LoadImage("tmp/%s_%s" % (hash1, filename1))
                carrier = cv.LoadImage("tmp/%s_%s" % (hash2, filename2))

                steg = LSBSteg(carrier)
                steg.hideImage(imagetohide)
                #steg.saveImage(("tmp/%s_%s_out.png"%(hash1,filename1)))

                #msg = "<html><head></head><body>Thanks, <a href='tmp/%s_%s_out.png'>Download Your Encode Image</a></body><html>"%(hash1,filename1)
            elif option == "decodeImage":
                print "decodeImage"

            #print hide("tmp/%s"%filename,encodeText)
            self.send_response(200)
            self.end_headers()
            #self.wfile.write("Thanks %s !" % form["your_name"].value)
            self.wfile.write(msg)
            return
Ejemplo n.º 30
0
#!/usr/bin/python
# Stego Dropper For Pentesters v0.1
# Uses https://github.com/RobinDavid/LSB-Steganography

from LSBSteg import LSBSteg
import cv2.cv as cv
import sys

INPUT_IMG = "image.png"
PAYLOAD = "mal_server"
OUTPUT_IMG = "mal.png"

#Hide payload in image, output new stego image
carrier = cv.LoadImage(INPUT_IMG)
steg = LSBSteg(carrier)
steg.hideBin(PAYLOAD)
steg.saveImage(OUTPUT_IMG)

Ejemplo n.º 31
0
def hide_image(secret_img, carrier_img, out_img="res.png"):
    imagetohide = cv.LoadImage(secret_img)
    carrier = cv.LoadImage(carrier_img)
    steg = LSBSteg(carrier)
    steg.hideImage(imagetohide)
    steg.saveImage(out_img)
Ejemplo n.º 32
0
def encrypt(code):
  if _('ENCRYPTION_VERSION') == 'V1':
    print('ENCRYPTION_VERSION:%s' % _('ENCRYPTION_VERSION'))
    head = read_bytes('../dangdai-32x32.png')
    head1 = head[0:-12]
    head2 = head[-12:]
    tmpdir = os.getcwd()+'/tmp'
    if not os.path.exists(tmpdir):
      os.mkdir(tmpdir)
    os.chdir(tmpdir)
    for file in tsfiles(code):
      portion = os.path.splitext(file)
      if portion[1] == ".ts":
        newName = portion[0] + ".png"
        if os.path.isfile(newName):
          code = code.replace(file, newName)
          continue
        segment = read_bytes('../' + file)
        segment = zlib.compress(segment)
        done_segments = head1 + segment + head2
        open(newName, 'wb').write(done_segments)
        code = code.replace(file, newName)
      #break
    #os.chdir('../')

  if _('ENCRYPTION_VERSION') == 'V2':
    print('ENCRYPTION_VERSION:%s' % _('ENCRYPTION_VERSION'))
    tmpdir = os.getcwd()+'/tmp'
    if not os.path.exists(tmpdir):
      os.mkdir(tmpdir)
    os.chdir(tmpdir)

    for file in tsfiles(code):
      # 1,获取切片大小
      filesize = os.path.getsize('../' +file)+64
      wh=math.ceil(math.sqrt(filesize/3))*4
      # wh=math.ceil(math.sqrt(filesize*3))
      print('切片大小:%s,图片尺寸:%s' % (filesize,wh))
      data = open('../' + file, "rb").read()
      data = zlib.compress(data)
      print('压缩后切片大小:%s' % (len(data)))

      portion = os.path.splitext(file)
      newName = portion[0] + ".png"

      if os.path.isfile(newName):
        code = code.replace(file, newName)
        continue
      # 2,生成图片
      new_img_file_name = new_image(wh, wh, portion[0], show_image=False)
      print('生成图片:%s' % (new_img_file_name))

      # 3,隐写
      in_img = cv2.imread(new_img_file_name)
      steg = LSBSteg(in_img)
      starttime = time.time()
      res = steg.encode_binary(data)
      duration = time.time()-starttime
      print('隐写完成时间:%s' % (duration))
      cv2.imwrite(newName, res)
      print('隐写完成:%s' % (newName))

      # embed(new_img_file_name, '../' + file)
      # 4,替换
      code = code.replace(file, newName)

      """
      # 1,获取切片大小
      filesize = os.path.getsize('../' + file) + 64
      wh = math.ceil(math.sqrt(filesize / 3))
      print('切片大小:%s,图片尺寸:%s' % (filesize, wh))
      data = open('../' + file, "rb").read()
      new_img_file_name = r'%s_%s_%s.png' % (wh, wh, md5(data))
      if os.path.isfile('out' + new_img_file_name):
        code = code.replace(file, 'out' + new_img_file_name)
        continue
      # 2,生成图片
      new_image(wh, wh, md5(data), show_image=False)
      print('生成图片:%s' % (new_img_file_name))

      # 3,隐写
      in_img = cv2.imread(new_img_file_name)
      steg = LSBSteg(in_img)
      starttime = time.time()
      res = steg.encode_binary(data)
      duration = time.time() - starttime
      print('隐写完成时间:%s' % (duration))
      cv2.imwrite('out' + new_img_file_name, res)
      print('隐写完成:%s' % ('out' + new_img_file_name))
      # embed(new_img_file_name, '../' + file)
      # 4,替换
      code = code.replace(file, 'out' + new_img_file_name)
      
      """


  if not _('ENCRYPTION') == 'YES':
    return code

  for file in tsfiles(code):
    if file.startswith('enc.'):
      continue

    print('Encrypting %s to enc.%s ... ' % (file, file), end='')
    key = exec(['openssl','rand','16']).hex()
    iv  = execstr(['openssl','rand','-hex','16'])
    exec(['openssl','aes-128-cbc','-e','-in',file,'-out','enc.%s' % file,'-p','-nosalt','-iv',iv,'-K',key])

    key_id = api('POST', 'key', data={'iv': iv, 'key': key})
    if not key_id:
      print('failed')
      open('out.m3u8', 'w').write(code)
      exit()

    print('done')
    code = re.sub('(#EXTINF:.+$[\\r\\n]+^%s$)' % file, '#EXT-X-KEY:METHOD=AES-128,URI="%s/play/%s.key",IV=0x%s\n\\1' % (_('APIURL'), key_id, iv), code, 1, re.M)
    code = code.replace(file, 'enc.%s' % file)

  open('out.m3u8', 'w').write(code)
  return code
Ejemplo n.º 33
0
def hide_binary(in_img, out_img):
    carrier = cv.LoadImage(in_img)
    steg = LSBSteg(carrier)
    steg.hideBin("ls") #I took the first binary I found
    steg.saveImage(out_img)
Ejemplo n.º 34
0
def lis(s):
    my=[s]
    while True:
        r,w,e=select.select(my,[],[])
        if s in r:
            try:
                global bob_pub
                global bob_priv
                (p,te)=pickle.loads(s.recv(100000000))
                if p==1:
                    (bob_pub,bob_priv,info)=te
                    temp= rsa.decrypt(info, bob_priv)
                    print(temp.decode('utf8')+"\n\n")
                elif p==2:
                    # print(lsb.reveal("lena_hide.png")+"\n\n")
                    print(lsb.reveal(te)+"\n\n")
                elif p==3:
                    (bob_pub,bob_priv,info)=te
                    temp= rsa.decrypt(info, bob_priv)
                    print(temp.decode('utf8')+"\n\n")
                elif p==4:
                    
                    crypto = rsa.encrypt(te,bob_pub)
                    s.send(pickle.dumps((55,(bob_pub,bob_priv,crypto))))
                elif p==55:
                    (bob_pub,bob_priv,info)=te
                    temp= rsa.decrypt(info, bob_priv)
                    print(temp.decode('utf8')+"\n\n")
                elif p==5:
                    (my_priv,my_pub,info)=te
                    temp= rsa.decrypt(info,my_pub)
                    print(temp.decode('utf8')+"\n\n")
                elif p==6:
                    (bob_pub,bob_priv,cipher_data,encrypted_aes_key)=te
                    cipher = AES.new(rsa.decrypt(encrypted_aes_key, bob_priv), AES.MODE_ECB)
                    plain_data = unpad(cipher.decrypt(cipher_data), AES.block_size)
                    cv2.imwrite('receiced6.png', pickle.loads(plain_data))
                    print('Image received6. \n')
                elif p==7:
                    steg = LSBSteg(te)
                    orig_im = steg.decode_image()
                    cv2.imwrite("recovered7.png", orig_im)
                    print('Image received7. \n')
                elif p==8:
                    (bob_pub,bob_priv,cipher_data,encrypted_aes_key)=te
                    cipher = AES.new(rsa.decrypt(encrypted_aes_key, bob_priv), AES.MODE_ECB)
                    plain_data = unpad(cipher.decrypt(cipher_data), AES.block_size)
                    cv2.imwrite('receiced8.png', pickle.loads(plain_data))
                    print('Image received8. \n')
                elif p==9:
                    aes_key = rsa.randnum.read_random_bits(128)
                    cipher = AES.new(aes_key, AES.MODE_ECB)
                    cipher_data = cipher.encrypt(pad(pickle.dumps(cv2.imread(te.decode('utf8'))), AES.block_size))
                    encrypted_aes_key = rsa.encrypt(aes_key, bob_pub)
                    s.send(pickle.dumps((99,(bob_pub,bob_priv,cipher_data,encrypted_aes_key))))
                elif p==99:
                    (bob_pub,bob_priv,cipher_data,encrypted_aes_key)=te
                    cipher = AES.new(rsa.decrypt(encrypted_aes_key, bob_priv), AES.MODE_ECB)
                    plain_data = unpad(cipher.decrypt(cipher_data), AES.block_size)
                    cv2.imwrite('receiced99.png', pickle.loads(plain_data))
                    print('Image received99. \n')
                elif p==10:
                    (my_priv,my_pub,cipher_data,encrypted_aes_key)=te
                    cipher = AES.new(rsa.decrypt(encrypted_aes_key, my_pub), AES.MODE_ECB)
                    plain_data = unpad(cipher.decrypt(cipher_data), AES.block_size)
                    cv2.imwrite('receiced10.png', pickle.loads(plain_data))
                    print('Image received10 \n')
                        
            except socket.error:
                print('socket is error')
                exit()
Ejemplo n.º 35
0
from LSBSteg import LSBSteg
import cv2.cv as cv
import sys
#imagetohide = cv.LoadImage("index.jpeg")
#carrier = cv.LoadImage("maxresdefault.jpg")
imagetohide = cv.LoadImage("mobile.jpg")
carrier = cv.LoadImage("image.jpg")
steg = LSBSteg(carrier)
steg.hideImage(imagetohide)
steg.saveImage("resultindex.png")

    
    

Ejemplo n.º 36
0
def hide_payload(input_img, payload, output_img):
  carrier = cv.LoadImage(input_img)
  steg = LSBSteg(carrier)
  steg.hideBin(payload)
  steg.saveImage(output_img)
Ejemplo n.º 37
0
def main():

  title   = argv[2] if argv[2] else os.path.splitext(os.path.basename(argv[1]))[0]
  tmpdir  = os.path.dirname(os.path.abspath(__file__)) + '/tmp'
  command = command_generator(os.path.abspath(argv[1]))
  print('commend:%s'%command)


  if sameparams(tmpdir, command):
    os.chdir(tmpdir)
  else:
    os.mkdir(tmpdir)
    os.chdir(tmpdir)
    os.system(command)
    open('command.sh', 'w').write(command)


  lines    = checker(encrypt(open('out.m3u8', 'r').read()))
  #return

  # failures, completions = 0, 0
  # executor = ThreadPoolExecutor(max_workers=15)
  # futures  = {executor.submit(uploader().handle, chunk): chunk for chunk in pngfiles(lines)}
  #
  # for future in as_completed(futures):
  #   completions += 1
  #   result = future.result()
  #
  #   if not result:
  #     failures += 1
  #     print('[%s/%s] Uploaded failed: %s' % (completions, len(futures), futures[future]))
  #     continue
  #
  #   lines = lines.replace(futures[future], result)
  #   print('[%s/%s] Uploaded %s to %s' % (completions, len(futures), futures[future], result))

  # 上传
  lines = upload(lines, pngfiles(lines))

  """
  head = read_bytes(os.path.dirname(os.path.abspath(__file__)) + '/dangdai-32x32.png')
  head1 = head[0:-12]
  head2 = head[-12:]
  done = base64.b64encode(lines.encode('utf-8'))
  done = zlib.compress(done)
  open('out.png', 'wb').write(head1 + done+head2)
  """
  llen = len(lines)+64
  wh = math.ceil(llen/3)
  print('文本大小:%s,图片尺寸:%s' % (llen, wh))

  new_img_file_name = new_image(wh, wh, 'out', show_image=False)
  print('生成图片:%s' % (new_img_file_name))

  in_img = cv2.imread(new_img_file_name)
  steg = LSBSteg(in_img)
  done = base64.b64encode(lines.encode('utf-8'))
  done = zlib.compress(done)
  res = steg.encode_binary(done)
  cv2.imwrite('out.png', res)

  m3u8url = uploader().handle('out.png')
  if _('PROXY') == 'YES':
    m3u8url = str(base64.b64encode(m3u8url.encode('utf-8')), 'utf8')
    print('This video\'s m3u8 has been published to: %s/p/%s' % (_('APIURL'),m3u8url))
  else:
    print('This video\'s m3u8 has been published to: %s/p/%s' % (_('APIURL'),m3u8url))
  publish(lines, title)
Ejemplo n.º 38
0
from LSBSteg import LSBSteg
import cv2

#Text encoding:

#encoding
try:
    steg = LSBSteg(cv2.imread("original.png"))
    img_encoded = steg.encode_text("Embedding a secret message, Hello World!")
    cv2.imwrite("encoded.png", img_encoded)
except:  # catch *all* exceptions
    exit(1)

#decoding
try:
    im = cv2.imread("encoded.png")
    steg = LSBSteg(im)
    print("Text value:", steg.decode_text())
except:  # catch *all exceptions
    exit(2)
Ejemplo n.º 39
0
path = "Input/"
opath = "Output/"
i = 0
NUM = 300

with open('random_text.txt') as csv_file:
    texts = []
    csv_reader = csv.reader(csv_file, delimiter=',')
    for t in csv_reader:
        texts.append(t)
    text_len = len(texts)
    for image_path in os.listdir(path):
        if (image_path.endswith(".png")):
            text = ''
            num = random.randint(20, 300)
            for _ in range(NUM):
                rand = random.randint(0, text_len - 1)
                text += texts[rand][0] + ' '
            inputpath = os.path.join(path, image_path)
            steg = LSBSteg(cv2.imread(inputpath))
            if i == 0:
                print('starting to embedding message...')
                print('input picture: ' + str(inputpath))
                print('message embedding in this message:' + text)
            img_encoded = steg.encode_text(text)
            outputpath = os.path.join(opath, "out" + str(i) + ".png")
            cv2.imwrite(outputpath, img_encoded)

            i += 1
Ejemplo n.º 40
0
	def do_POST(self):
		if self.path=="/send":
			form = cgi.FieldStorage(
				fp=self.rfile,
				headers=self.headers,
				environ={'REQUEST_METHOD':'POST',
		                 'CONTENT_TYPE':self.headers['Content-Type'],
			})

			option = form["option"].value
			#filename = form['file'].filename
			#print filename
			hash = random.getrandbits(128)
			msg=""
			if option == "encodeText" :
				print "encodeText"
				filename = form['file1'].filename
				hash = str(random.getrandbits(128))
				encodeText = form["encodeText"].value
				data = form['file1'].file.read()
				print encodeText
				open("tmp/%s_%s"%(hash,filename), "wb").write(data)
				carrier = cv.LoadImage("tmp/%s_%s"%(hash,filename))
				steg = LSBSteg(carrier)
				steg.hideText(encodeText)
				steg.saveImage(("tmp/%s_%s_out.png"%(hash,filename)))
				msg = "<html><head></head><body>Thanks, <a href='tmp/%s_%s_out.png'>Download Your Encode Image</a></body><html>"%(hash,filename)
			elif option == "decodeText":
				print "decodeText"
				filename = form['file1'].filename
				data = form['file1'].file.read()
				print filename
				hash = str(random.getrandbits(128))
				open("tmp/%s_%s"%(hash,filename), "wb").write(data)
				im = cv.LoadImage("tmp/%s_%s"%(hash,filename))
				steg = LSBSteg(im)
				unhideText = steg.unhideText()
				print unhideText
				#print steg.unhideText()
				msg = "<html><head></head><body>Thanks, your texts is : %s</body><html>"%unhideText
			elif option == "encodeImage":
				print "encodeImage"
				filename1 = form['file1'].filename
				filename2 = form['file2'].filename
				print filename1
				print filename2
				hash1 = str(random.getrandbits(128))
				hash2 = str(random.getrandbits(128))
				data = form['file1'].file.read()
				open("tmp/%s_%s"%(hash1,filename1), "wb").write(data)
				data = form['file2'].file.read()
				open("tmp/%s_%s"%(hash2,filename2), "wb").write(data)

				imagetohide = cv.LoadImage("tmp/%s_%s"%(hash1,filename1))
				carrier = cv.LoadImage("tmp/%s_%s"%(hash2,filename2))

				steg = LSBSteg(carrier)
				steg.hideImage(imagetohide)
				#steg.saveImage(("tmp/%s_%s_out.png"%(hash1,filename1)))

				#msg = "<html><head></head><body>Thanks, <a href='tmp/%s_%s_out.png'>Download Your Encode Image</a></body><html>"%(hash1,filename1)
			elif option == "decodeImage":
				print "decodeImage"


			#print hide("tmp/%s"%filename,encodeText)
			self.send_response(200)
			self.end_headers()
			#self.wfile.write("Thanks %s !" % form["your_name"].value)
			self.wfile.write(msg)
			return