10 ms·
An animated GIF that shows its own MD5
- bbcbasic 10y agoVerified correct with http://onlinemd5.com/ http://onlinemd5.com/ :-)
- dorxk 10y agoUNUTMAYIZ. AFFETMEYİZ. BİZİ BEKLEYİZ.
- deleted 10y ago[deleted]
- dgitg5266 10y agob12092fb2bf87e09ab9e9ad6fc55f3c5
- strictnein 10y agoTook me a couple of minutes looking at this to realize why this was interesting. It's like a baby being born holding its completed birth certificate.
- rkangel 10y agoOne of my friends had a birthday cake which had a QR code on it of the URL photo album containing photos of the birthday. Of course this is trivial to set up (create album before, upload photos after), but I found it amusing nonetheless.
- positivecomment 10y agoThis is a very creative and practical idea. Well, I haven't seen anyone (seriously, 0 people) scanning a QR code before so there is that...
- alanh 10y agoOr have the QR code go to a redirection URL that you can set to the album URL after the fact. E.g., easy with my link shortener software, 'Lessn More'
- tyre 10y agoMore closely, a baby being born with a birthmark of its DNA sequence on its skin—where the birthmark is genetic such that any clones (with the same DNA) would have the same birthmark.
- ouid 10y agoI'm not sure that's closer, DNA->organism is roughly a continuous mapping.
- superbatfish 10y agoThis sentence has forty-five (45) characters.
- glitchdout 10y agoSlightly related, I think you'll like this puzzle: https://www.youtube.com/watch?v=x1THOPm0qTw https://www.youtube.com/watch?v=x1THOPm0qTw
- JadeNB 10y agoOr the good old self-referential aptitude test. http://www.maa.org/press/periodicals/math-horizons/self-referential-aptitude-test-by-jim-propp http://www.maa.org/press/periodicals/math-horizons/self-refe...
- calt 10y agoOr "(This Song's Just) Six Words Long" ... even though he's clearly not singing it as a contraction. https://www.youtube.com/watch?v=JWi5jdgTUJs https://www.youtube.com/watch?v=JWi5jdgTUJs
- kristopolous 10y agoThat's pretty catchy. Weird Al is a really talented musician. I almost think he'd do greater things if he wasn't such a goofball all the time.
- SmellyGeekBoy 10y agoThe guy's career has spanned decades. Much longer than most of the "stars" he's parodied. He must be doing something right.
- noonespecial 10y agoRemaining a goofball all the time despite his talent and success is the great thing he's done.
- Lxr 10y ago
- z1mm32m4n 10y agoWow! I'd love to read about how this was made.
- JadeNB 10y agosoheil heard, and your request was granted (https://news.ycombinator.com/item?id=13824445 https://news.ycombinator.com/item?id=13824445).
- Kenji 10y agoNow do a SHA1 one ;)
- j_s 10y agoPeople are reusing the collision in many interesting ways, but I don't think it helps in this case. Two "different" EXEs with same SHA1/MD5 with different outputs: https://roastingbugs.blogspot.com/2017/03/eat-more-hashes.html https://roastingbugs.blogspot.com/2017/03/eat-more-hashes.ht...
- yuhong 10y agoSeems to require a chosen prefix attack that is much more expensive.
- justindocanto 10y agoWould love to know how this was made, if anybody knows
- nmat 10y agoThis was posted to reddit yesterday, here's the discussion:https://www.reddit.com/r/programming/comments/5y03g9/animated_gif_displaying_its_own_md5_hash/ https://www.reddit.com/r/programming/comments/5y03g9/animate...
- mmanfrin 10y agoI can't imagine how you'd begin to do this.
- tekromancr 10y agoJust a wild guess, but I imagine you would start by designing the gif animation to depict a plausible MD5 hash, then modifying the file in such a way that you make the file MD5 hash match the one depicted in the animation. Very impressive!
- sdegutis 10y agoAre MD5 hashes that predictable that you can just make a few adjustments to a binary until it's the one you want?
- Filligree 10y agoMD5 as a cryptographic hash is thoroughly shredded, yes. It's still fine for non-cryptographic purposes, except that it's far slower than e.g. CRC.
- hueving 10y agoThat would be news if that were the case. The preimage resistance for MD5 was pretty strong last time I looked: http://crypto.stackexchange.com/questions/13303/is-md5-second-preimage-resistant-when-used-only-on-fixed-length-messages http://crypto.stackexchange.com/questions/13303/is-md5-secon...
- MichaelGG 10y agoBut any 128 bit value is a plausible MD5 hash. Modifying the file to make that value is akin to doing a preimage attack right?
- rhaps0dy 10y agoYes, that's probably the point of the maker. To prove that they can do a preimage attack.
- matreyes 10y agoHow did you do that!
- quirkot 10y agohttps://xkcd.com/688/ https://xkcd.com/688/
- svenfaw 10y agoWriteup by @angealbertini coming soon
- j_s 10y agoDubbed HashQuines; here are PDF and PostScript too: https://twitter.com/i/moments/838685002703466497 https://twitter.com/i/moments/838685002703466497
- IAmGraydon 10y agoThat is really amazing. How was this done?
- ruleabidinguser 10y agoI bet this has something to do with the fact (or so I'm told) that MD5 is broken.
- soheil 10y agoThis is incredible, it's like winning the lottery except that you can play incredibly fast with almost no cost for each try.
- soheil 10y agoI wonder if it being an animated GIF as opposed to just an image has anything to do with it.
- pulse7 10y agoSurely it does: you have much more combinations in animated GIF than static GIF so it is easier to make "unvisible" changes to the file to get the MD5 hash displayed on final GIF slide.
- MontagFTB 10y agoThere's an explanation of how this 'attack' was composed here: http://crypto.stackexchange.com/questions/44463/how-does-the-attack-on-md5-work-that-allows-a-file-to-show-its-own-full-hash http://crypto.stackexchange.com/questions/44463/how-does-the...
- bonzini 10y agoThe answer there doesn't explain chosen-prefix attacks, which are more powerful than building a collision out of a single prefix. They require much less flexibility in the fire format; building the PDF for shattered.io wasn't trivial exactly because the SHA-1 break didn't allow choosing two prefixes.
- soheil 10y agoHere is the explanation: 1. Generate a gif for each possible digit in the first column 2. Append collision blocks to each gif to make a 16 way collision 3. Repeat for each digit 4. Hash the final product 5. Replace each digit with the correct digit From https://www.reddit.com/r/programming/comments/5y03g9/animated_gif_displaying_its_own_md5_hash/ https://www.reddit.com/r/programming/comments/5y03g9/animate...
- helb 10y agoCreate your own MD5 collisions – https://natmchugh.blogspot.cz/2015/02/create-your-own-md5-collisions.html https://natmchugh.blogspot.cz/2015/02/create-your-own-md5-co... (2015, on HN here, but without any significant traction: https://news.ycombinator.com/item?id=9003429 https://news.ycombinator.com/item?id=9003429) The software used is "HashClash", seems it supports SHA1, too: https://marc-stevens.nl/p/hashclash/index.php https://marc-stevens.nl/p/hashclash/index.php
- kevinSuttle 10y agoOh man. Thanks! That makes so much more sense with the explanation.
- taneq 10y agoWhy would you do it that way, rather than: 1. Pick a target MD5 2. Make whatever cutesy animation you want showing that number 3. Append collision blocks to the resulting gif to make it match the target MD5
- fniephaus 10y agoReminds me of https://en.wikipedia.org/wiki/Tupper's_self-referential_formula https://en.wikipedia.org/wiki/Tupper's_self-referential_form...
- arglebarnacle 10y agoI was a bit disappointed when I found this out about it: "The formula is a general-purpose method of decoding a bitmap stored in the constant k, and it could actually be used to draw any other image." That makes it less of a self-referential formula in my opinion, and more of a cool formula that can print any bitmap.
- omaranto 10y agoJakub Travnik has a better version where the image includes the necessary constant. http://jtra.cz/stuff/essays/math-self-reference/index.html http://jtra.cz/stuff/essays/math-self-reference/index.html
- jwilk 10y agoYeah, the title is misleading. There's nothing self-referential about this formula. Now, if the formula was also capable of drawing the constant k, THAT would be exciting.
- omaranto 10y agoJakub Travnik has got your back. http://jtra.cz/stuff/essays/math-self-reference/index.html http://jtra.cz/stuff/essays/math-self-reference/index.html
- deleted 10y ago[deleted]
- Exuma 10y agoIt's like a quine almost. My favorite quine is...http://aem1k.com/world/ http://aem1k.com/world/ (view source)
- nkoren 10y agoThat is outrageously wonderful. Thank you!
- djsumdog 10y agoHave you seen this one? It's insane: https://github.com/mame/quine-relay https://github.com/mame/quine-relay
- TuringTest 10y agoIt's awesome how it can maintain the image layout in the source code through those 100 transformations. I wonder whether it reads its own source code file to detect where to put the spaces for the image, or is it all encoded as data in the ruby program itself? I suppose it's the latter (otherwise it wouldn't qualify as a quine), but I can't figure out how it is encoded.
- nacs 10y agoIt appears all the languages' code is encoded in the `code_gen.rb` file: https://github.com/mame/quine-relay/blob/master/src/code-gen.rb#L1030-L1056 https://github.com/mame/quine-relay/blob/master/src/code-gen... < VB https://github.com/mame/quine-relay/blob/master/src/code-gen.rb#L120-L146 https://github.com/mame/quine-relay/blob/master/src/code-gen... < PHP
- power78 10y agoHow is that possible?
- clishem 10y agoTitle checks out. > md5sum md5.gif f5ca4f935d44b85c431a8bf788c0eaca md5.gif
- joombaga 10y agoNever knew that md5sum took a file argument. I've always `md5sum <foo` Slightly embarrassing, but at least I wasn't `cat foo|md5sum`
- kevincox 10y agoIt's nice to hash a couple files and have the hashes displayed right next to each other :)
- coldpie 10y agoThe output format of md5sum and other checksum programs is well-defined, which lets you use the -c switch to verify. This is the format you see in checksum files when downloading source tarballs, distro ISOs, packages, etc. $ echo hello > fileone $ echo there > filetwo $ md5sum fileone filetwo | tee /tmp/ck b1946ac92492d2347c6235b4d2611184 fileone c4ff45bb1fab99f9164b7fec14b2292a filetwo $ md5sum -c /tmp/ck fileone: OK filetwo: OK $ echo oops > filetwo $ md5sum -c /tmp/ck fileone: OK filetwo: FAILED md5sum: WARNING: 1 computed checksum did NOT match Edit: Of course, nothing wrong with using stdin: $ wget -q -O- https://shells.aachen.ccc.de/~spq/md5.gif | md5sum f5ca4f935d44b85c431a8bf788c0eaca -
- quakeguy 10y agoWOW!
- mh-cx 10y agoThat makes me wonder if it's also easy to create a string that is its own MD5.
- ketralnis 10y agoThis is called a fixed point, that is an X such that md5(X)==X. A quick google for "md5 fixed point" shows some claims that the probability that one exists is about 63% (https://news.ycombinator.com/item?id=614027 https://news.ycombinator.com/item?id=614027) but no examples of a known one
- raverbashing 10y agoAlso the "real" fixed point wouldn't be necessarily ASCII So you could have two types: one where the hash matches the input bytes, another where an hex string is inputed and that matches the hex representation of the hash
- aidenn0 10y agoAlso EBCDIC and UTF-16
- jix 10y agoThere is http://www.olegkikin.com/md5game/ http://www.olegkikin.com/md5game/ on which I wasted some GPU cycles many years ago. It uses a very silly metric for progress though. Finding a longer substring that matches doesn't bring you closer to finding MD5(x) = x. It was a fun problem to try out some crypto bruteforcing on the GPU though. I don't think any of the known weaknesses of MD5 would help you in finding MD5(x) = x.
- dexen 10y agoIn similar spirit, a Zip archive holding itself, by Russ Cox: https://research.swtch.com/zip https://research.swtch.com/zip Infinite recursion!
- logotype 10y agoI think this uses one of the available GIF extensions (e.g plain-text, custom data, or other) since gif is a block based binary file. Animation blocks in one part of the file, then for the other blocks you could just put random data (which is ignored by the GIF parser) until you find the MD5 collision.
- zaf 10y agoNot as impressive but similar idea: https://github.com/ziqbal/jpegfit/blob/master/61081.jpg https://github.com/ziqbal/jpegfit/blob/master/61081.jpg