diff --git a/arty_new.png b/arty_new.png index ae787a7..dec05b3 100644 Binary files a/arty_new.png and b/arty_new.png differ diff --git a/encode_image.rb b/encode_image.rb index bb10334..cfe62b3 100644 --- a/encode_image.rb +++ b/encode_image.rb @@ -6,13 +6,14 @@ class EncodeImage @@utils = nil - def initialize(p, m, i) @@password = p @@message = m @@utils = ImageUtils.new(@@password, @@message, i) + @@original_name = n + @@table = @@utils.generateLookupTable end @@ -33,9 +34,7 @@ class EncodeImage @@utils.getImage.saveImage end - # Need to properly sever this at some point... - def decode puts "Hacked in decode..." s = @@utils.getImage.getSize @@ -74,4 +73,4 @@ puts "Padding passed scrutiny..." return msg end -end \ No newline at end of file +end diff --git a/image_utils.rb b/image_utils.rb index 2b81a42..8f7ee56 100644 --- a/image_utils.rb +++ b/image_utils.rb @@ -14,7 +14,7 @@ class ImageUtils @@password = pass @@message = msg - if msg.length > 1024 then + if msg.length > 400 then puts "Maximum length exceeded. Exiting." exit end @@ -34,32 +34,9 @@ class ImageUtils h = Digest::SHA512.hexdigest(@@password) s = @@pixelImg.getSalt - @@hash = Digest::SHA512.hexdigest(self.interlaceHash(h, s)) - end + merge_to_i = h + s - def interlaceHash(h1, h2) - puts h1 - puts h2 - - h1 = self.getBits(h1) - h2 = self.getBits(h2) - - interlaced = 0 - - while h1.to_i > 0 and h2.to_i > 0 do - interlaced = (interlaced << 1) | (h1 & 1) - h1 = h1 >> 1 - interlaced = (interlaced << 1) | (h2 & 1) - h2 = h2 >> 1 - -# puts interlaced -# puts h1 -# puts h2 - end - - puts interlaced.to_s.inspect - - return interlaced.to_s + @@hash = Digest::SHA512.hexdigest(h+s) end def generateLookupTable @@ -101,16 +78,4 @@ class ImageUtils return tbl end - - def getBits(o) - msg_bytes = o.unpack("c*") - - msg_bits = 0 - - for b in msg_bytes - msg_bits = (msg_bits << 8) | b - end - - return msg_bits - end end \ No newline at end of file diff --git a/runner.rb b/runner.rb index 4ef178f..9f2146b 100644 --- a/runner.rb +++ b/runner.rb @@ -3,20 +3,14 @@ require "rmagick" require "./image_utils.rb" require "./encode_image.rb" -img = Magick::ImageList.new "./images/original/arty.png" +img_name = "arty" + +img = Magick::ImageList.new "./images/original/" + img_name + ".jpg" #srand(12345) pass = "my_password" message = "This is the message that I would like to save please " + - "and thank you also I love you? AND apostrophe's, and " + - "also some commas somewhere hiding around here, It's " + - "gonna be pushing it a bit here... 1234567 let's huck " + - "some more stuff in here to bump it to 255. Wow. We " + - "are going even further. further than anyone believed " + - "`~!@\#\{$%^&*()-_=+\][}{';:'}]} Wooow. 123456789!1234" + - "56789! so put 15 more??????400! TIMES TWO!! " + - "This is the message that I would like to save please " + "and thank you also I love you? AND apostrophe's, and " + "also some commas somewhere hiding around here, It's " + "gonna be pushing it a bit here... 1234567 let's huck " + @@ -34,7 +28,7 @@ puts "Initializing EncodeImage..." start = Time.new.to_f -em = EncodeImage.new(pass, message, img) +em = EncodeImage.new(pass, message, img, img_name) puts em.encode puts "Took " + (Time.new.to_f - start).to_s + " seconds to encode... 🐱"