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
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()
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))
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)
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")
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)
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")
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'
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'
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")
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
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
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())
__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
from LSBSteg import LSBSteg import cv2.cv as cv import sys im = cv.LoadImage("res.png") steg = LSBSteg(im) print "Text value:", steg.unhideText()
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)
def hide_payload(input_img, payload, output_img): carrier = cv.LoadImage(input_img) steg = LSBSteg(carrier) steg.hideBin(payload) steg.saveImage(output_img)
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()
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
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()
import cv from LSBSteg import LSBSteg import sys imagename = sys.argv[1] im = cv.LoadImage(imagename) steg = LSBSteg(im) print steg.unhideText()
def unhide_text(in_img): im = cv.imread(in_img) steg = LSBSteg(im) print(steg.unhideText())
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
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)
def retrieve_data(img): print img im = cv.LoadImage(img) steg = LSBSteg(im) return steg.unhideText()
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
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 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
#!/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)
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)
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
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)
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()
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")
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)
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)
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
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