[{"data":1,"prerenderedAt":240},["ShallowReactive",2],{"project-14846064":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":27,"sentiment":28,"stance_mix":29,"scored_comments":34,"aspects":35,"strip":39,"post_text":41,"what":42,"said":51,"maker_in_thread":138,"shape":142,"grid":146,"attempts":197,"same_week":202,"maker_shows":34,"maker_hidden":232,"reader_version":233,"card":234},"14846064","SpeakingJpg","Hide encrypted text messages inside jpeg images","title","Show HN: SpeakingJpg – Hide encrypted text messages inside jpeg images","https:\u002F\u002Fgithub.com\u002FWolframHempel\u002Fspeaking-jpg","github.com","wolframhempel",1500970585,2017,34,20,988,2242,45,"shown","security_privacy","steganography","web_app",[21,24,25,26],"jpeg","hide message in image","encrypted messages","roasted",-0.208,{"positive":30,"neutral":31,"mixed":32,"critical":33},1,2,0,3,6,{"idea":36,"privacy":37,"execution":38},{"positive":30,"critical":32},{"positive":32,"critical":31},{"positive":32,"critical":30},[32,32,32,32,32,32,32,32,33,32,30,32,40,30,33,30,32,32,32,32],5,null,{"problem":43,"audience":41,"pricing":41,"motivation":41,"time_to_build":41,"stack":49,"openness":50,"stage":50,"team_size":50},{"value":44,"source":45,"evidence":46},"Hides encrypted text messages inside JPEG images","maker",[47],{"id":48},"post",[],"unknown",{"praise":52,"objections":65,"requests":91,"questions":109,"alternatives":120},[53],{"value":54,"source":55,"evidence":56},"Fun to play with and a cool idea","commenter",[57,61],{"id":58,"by":59,"text":60},"14847754","tyingq","Cool, but it appears to embed in a jpeg comment section with a predictable constant that marks what it is. So fun to play with, but not terribly covert.",{"id":62,"by":63,"text":64},"14847610","notheguyouthink","Really cool! I actually read about this idea years ago in a book (Dean Koontz, The Husband iirc). Ever since then I've wondered why it isn't more common to try to obscure…",[66,70,80],{"value":67,"source":55,"evidence":68},"Embedding in a JPEG comment block with a constant identifier is not covert",[69],{"id":58,"by":59,"text":60},{"value":71,"source":55,"evidence":72},"Metadata gets stripped by online services that resize images",[73,77],{"id":74,"by":75,"text":76},"14847979","Gys","Having text in the comment section does not seem very useful as most online services will resize the image and very likely strip comments (as mentioned in the readme). A…",{"id":78,"by":11,"text":79},"14847995","Agreed, though that would require a lossless format (e.g. png) and would limit exchanges to sources that don't change the image (e.g.as email attachment) but not social networks…",{"value":81,"source":55,"evidence":82},"Lossy JPEG recompression destroys LSB-style hidden data",[83,87],{"id":84,"by":85,"text":86},"14848089","drdaeman","You was probably thinking about this: http:\u002F\u002Fsteghide.sourceforge.net\u002F It hides data in the least significant bits (at locations defined by a passphrase) of the image or audio…",{"id":88,"by":89,"text":90},"14848062","anfractuosity","You don't have to use a lossless format for steganography, for example: 'Statistically Undetectable JPEG Steganography: Dead Ends, Challenges, and Opportunities'…",[92,98,104],{"value":93,"source":55,"evidence":94},"Make the identifier configurable or scan all comment blocks",[95],{"id":96,"by":11,"text":97},"14847933","true - would make sense to make the identifier configurable and\u002For just iterate trough all comments in the jpg",{"value":99,"source":55,"evidence":100},"Support multiple comment blocks to exceed the 65k limit",[101],{"id":102,"by":59,"text":103},"14847826","The data is going in an APPn jpeg metadata block (jpg \"comment\"), max size of 65k. You could use multiple comment blocks, but this doesn't implement that.",{"value":105,"source":55,"evidence":106},"Use a lossless format like SVG or PNG",[107,108],{"id":74,"by":75,"text":76},{"id":78,"by":11,"text":79},[110,116],{"value":111,"source":55,"evidence":112},"What is the 65k limit due to",[113],{"id":114,"by":89,"text":115},"14847650","Nice, I haven't looked at the code yet, but I'm curious what the 65k limit is due to? I was just thinking though, if you're using the meta data field, couldn't that make it…",{"value":117,"source":55,"evidence":118},"Is hiding data in metadata obvious",[119],{"id":114,"by":89,"text":115},[121,125,132],{"value":122,"source":55,"evidence":123},"Steghide",[124],{"id":84,"by":85,"text":86},{"value":126,"source":55,"evidence":127},"OpenStego",[128],{"id":129,"by":130,"text":131},"14847602","scandox","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FSteganography I remember being told that Al-Qaeda used this mechanism to exchange messages pre-9\u002F11. Surely there are longer established tools for…",{"value":133,"source":55,"evidence":134},"ImageMagick stegano option",[135],{"id":136,"by":59,"text":137},"14848146",">where the encrypted message is overlayed into the picture data You can play around with this idea using imagemagick. It has a built it \"stegano\" option to hide one image within…",{"comments":31,"answered":30,"key":139},[140,141],{"id":78,"text":79},{"id":96,"text":97},{"commenters":143,"max_depth":33,"maker_replies":31,"first_comment_mins":144,"lifespan_hours":145},16,323,29,[147,151,154,155,156,159,160,161,164,166,169,171,173,175,177,178,180,184,188,193],[148,32,32,149,150,32],"14847876","commenter\u002Fneutral\u002Fidea","jmull",[152,32,32,149,153,32],"14847965","dbcurtis",[78,32,32,149,11,30],[88,32,32,149,89,32],[157,32,32,149,158,32],"14848066","Leszek",[84,32,32,149,85,32],[136,32,32,149,59,32],[162,32,32,149,163,32],"14850916","CorvusCrypto",[129,30,33,165,130,32],"project\u002Fneutral\u002Fidea",[167,30,32,149,168,32],"14852079","cvwright",[58,31,30,170,59,32],"project\u002Fcritical\u002Fprivacy",[96,31,32,172,11,30],"project\u002Fneutral\u002Fexecution",[62,33,40,174,63,32],"project\u002Fpositive\u002Fidea",[114,176,30,170,89,32],4,[102,176,33,172,59,32],[74,40,30,179,75,32],"project\u002Fcritical\u002Fexecution",[181,34,32,182,183,32],"14847899","other\u002Fneutral\u002Fnone","staticelf",[185,186,32,182,187,32],"14855883",7,"westmeal",[189,190,32,191,192,32],"14847756",8,"commenter\u002Fcritical\u002Fprivacy","tianshuo",[194,190,32,195,196,32],"14848465","commenter\u002Fneutral\u002Fprivacy","jstanley",[198,201],{"id":199,"t":200,"points":30,"comments":32},"14836917",1500887433,{"id":4,"t":12,"points":14,"comments":15},[203,208,213,218,223,228],{"id":204,"name":205,"points":206,"category":207},"14821478","$200 Solar Self-Sufficiency  Without Your Landlord Noticing",491,"infrastructure",{"id":209,"name":210,"points":211,"category":212},"14859084","Chromeless",385,"dev_tools",{"id":214,"name":215,"points":216,"category":217},"14853212","Musikcube",340,"creative",{"id":219,"name":220,"points":221,"category":222},"14841859","Conference List",296,"productivity",{"id":224,"name":225,"points":226,"category":227},"14854915","Teachcraft",212,"languages",{"id":229,"name":230,"points":231,"category":212},"14821186","Mesh IDE",199,false,"v2",{"id":235,"name":5,"line":6,"ai":232,"cat":20,"year":13,"points":14,"comments":15,"rec":27,"s":236,"top":18,"kw":237,"maker":11,"domain":10,"tier":19,"attempts":31,"strip":238,"url":9,"mix":239,"praise":54,"objection":67,"sub":21},14846064,-0.21,[21,24,25,26],"00000000301051310000",[30,31,32,33],1794036557589]