Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def getmessage(filename):
- f = open(filename, 'rb')
- return f.read()
- def buildfile(message, filename):
- f = open(filename, 'wb')
- f.write(message)
- f.flush()
- def encode(key, image, message):
- img = Image.open(image)
- new = Image.new('RGB',img.size)
- x = 0
- y = 0
- for x in range(0,img.size[0],1):
- for y in range(0,img.size[1],1):
- new.putpixel((x,y),img.getpixel((x,y)))
- pos = 0
- for i in range(len(message)):
- new.putpixel((pos%img.size[0],pos/img.size[0]),(ord(message[i])^ord(key[i%len(key)])))
- pos = pos + ord(key[i%len(key)])
- filename = raw_input('Enter file name to save in:')
- new.save(filename)
- def decode(key, image, pix):
- img = Image.open(image)
- pos = 0
- msg = ""
- for i in range(pix):
- msg += chr(img.getpixel((pos%img.size[0],pos/img.size[0]))[0]^ord(key[i%len(key)]))
- pos = pos + ord(key[i%len(key)])
- return msg
- import Image
- key = raw_input('Enter Password:')
- image = raw_input('Enter image file name:')
- while True:
- print "Choose one of the following:\n1.Create Steganographic Data\n2.Read Steganographic Data\n3.Exit\n"
- x = raw_input('Your Choice:')
- if (x == '1'):
- i = raw_input("1. Read from a file\n2. Enter text manually\nYour Choice:")
- if (i == '2'):
- message = raw_input('Enter Message:')
- elif (i == '1'):
- filename = raw_input('Enter data file name:')
- message = getmessage(filename)
- encode(key, image, message)
- print "The length of the message was " + str(len(message))
- elif (x == '2'):
- pix = int(raw_input('Enter the number of characters you want to retrieve:'))
- msg = decode(key, image, pix)
- i = raw_input("1. Write to a file\n2. Display on Console\nYour Choice:")
- if (i == '2'):
- print msg
- elif (i == '1'):
- filename = raw_input('Enter file name to write in:')
- buildfile(msg, filename)
- elif (x == '3'):
- break
- else:
- print
- pass
- raw_input()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement