[HN Gopher] Passwordle
       ___________________________________________________________________
        
       Passwordle
        
       Author : snthueoa
       Score  : 539 points
       Date   : 2022-02-16 16:13 UTC (6 hours ago)
        
 (HTM) web link (rsk0315.github.io)
 (TXT) w3m dump (rsk0315.github.io)
        
       | samwillis wrote:
       | My wife was looking at me when I opened this.
       | 
       | "What are you grinning at?"
       | 
       | I just locked my phone and put it face down on the table...
        
         | jdthedisciple wrote:
         | Why would you do that xD - I'd have explained it to her
         | instead, doing what you did I'm not sure I'd be happy about as
         | wifey ...
        
           | qzw wrote:
           | You see, if he does that when it's perfectly innocent, then
           | his wife would be conditioned to ignore the behavior in the
           | future. So when he's truly up to no good at some point, he
           | won't be doing anything different than "normal". The man is
           | probably some kind of criminal mastermind.
        
           | samwillis wrote:
           | Ha! Quite true, maybe poor attempt at humour stopping the
           | story there.
           | 
           | I actually did explain after that ellipsis, her response:
           | 
           | "That's niche!"
           | 
           | She is also well aware of what hashing is.
        
       | pjerem wrote:
       | Well, that's not "dolphins".
        
       | c0nsumer wrote:
       | Thinking about this a bit deeper, it's a pretty good system for
       | explaining a bunch of technologies to others (those mentoring,
       | etc). There's the reason why it's not possible to win via the
       | front door, how basic client side JS apps are put together,
       | basics of using debugging tools...
        
       | dschulz wrote:
       | the wordle craze is getting out of hand
        
       | umvi wrote:
       | You could do a version of this with a two-way function like
       | base64 and it would still be possible but very difficult without
       | programmatic guessing.
        
       | TremendousJudge wrote:
       | literally made me laugh out loud, well done
        
         | ziml77 wrote:
         | Same here! I love the absurdity of this one given the nature of
         | cryptographic hash functions.
        
         | delaaxe wrote:
         | Me too but this can never be sold right
        
           | core-utility wrote:
           | What, Wired Magazine won't buy this for $3 Million?
        
       | quantumite wrote:
       | This is hilarious, I love it! I've already shared it half a dozen
       | times...LOL!
        
       | manceraio wrote:
       | This is a masterpiece.
        
       | rabuse wrote:
       | Solved mine in Firefox, using the JS debugger, and viewing the
       | scope of the randomPassword function. "nSQXy3Qwl3E<qV". All your
       | wordle are belong to me!
        
       | teatoli wrote:
       | What exactly is this showing ?
        
         | dskloet wrote:
         | It's Wordle but it hashes your guess before applying hints.
        
         | barbazoo wrote:
         | It's a clone of the popular wordle game where you have to guess
         | a word, except here, you have to guess a password but instead
         | of telling you which characters of the password are correct it
         | tells you which characters of the corresponding SHA-256 hash
         | are, which makes this pretty much impossible to solve as the
         | whole point of a hash are that small changes in the input (such
         | as a different character in the password) results in big
         | changes in the hash.
        
           | __s wrote:
           | You can make a rainbow table of the possible passwords &
           | converge pretty quickly
           | 
           | Don't hash passwords. Use pbkdf2 or some better alternative
           | (I suggest pbkdf2 because it's widely implemented)
        
             | FabHK wrote:
             | > You can make a rainbow table of the possible passwords
             | 
             | Can you? Here? 14 letters from an alphabet of around 90
             | characters?
        
               | __s wrote:
               | There's a certain network getting through quite a few
               | SHA256s, just give it a couple decades
        
           | samwillis wrote:
           | > pretty much impossible to solve
           | 
           | Literal understatement of all time...
        
             | meowface wrote:
             | A quantum computer could potentially turn it from
             | impossible to merely nearly impossible.
        
       | travisgriggs wrote:
       | They cynical side of me notes what a great phish this could be.
       | People are inclined to enter passwords they regularly use just to
       | see the visualization of their favorite passwords. With a little
       | logging -> send home, you'd be harvesting passwords left and
       | right.
        
         | peanut_worm wrote:
         | is a password very useful without any other identifier though?
        
           | [deleted]
        
         | hbn wrote:
         | It's hosted on Github Pages which is just static file serving.
         | And thanks to CORS restrictions I don't think you could phone
         | home.
         | 
         | Unless there's a workaround I'm not thinking of.
        
           | heartbeats wrote:
           | Can't you embed off-site images?
        
           | Sohcahtoa82 wrote:
           | The CORS policy is set by the server receiving the request,
           | not the page/server sending it.
        
           | jamespwilliams wrote:
           | GitHub pages are served with Access-Control-Allow-Origin: *,
           | so the SOP doesn't apply.
           | 
           | They also don't set a CSP header, which opens up the
           | opportunity to exfiltrate data by other means, e.g having the
           | browser load an image on your.site/$password.jpg.
        
             | hbn wrote:
             | Ah right. Simple!
        
         | grp000 wrote:
         | Would the type of people amused by this have that weakness
         | though?
        
       | dezmou wrote:
       | do I gain a bitcoin if I win ?
        
         | Anunayj wrote:
         | well if you manage to break sha256, sure you do ;)
        
       | nathias wrote:
       | maybe wordle is just a frontend for a human powered distributed
       | dictionary attack
        
       | d--b wrote:
       | Just checked the source, I am so sad that the answer is actually
       | random. Couldn't read the comments in Japanese though
        
       | ledoge wrote:
       | Also see dwordle, where you have to guess a function pointer:
       | https://twitter.com/zhuowei/status/1482175505185095682
        
       | susrev wrote:
       | This is great fun. Thank you.
        
       | dorianmariefr wrote:
       | passWORDLE 1/1064 0 0
       | https://rsk0315.github.io/playground/passwordle.html
       | 
       | on Chrome, open Dev Tools and type `res` to get the password :)
        
         | Thorentis wrote:
         | Gee, I'm so glad somebody posted this so that I can cheat on a
         | game that is not competitive and that I'm playing voluntarily
         | and that has no bragging rights because of how niche it is.
        
         | IncRnd wrote:
         | Yes, but the point is to show that each password produces a
         | sha256 not correlated to the sha256 of other passwords. That
         | people actually tried to guess this way shows that not everyone
         | is aware of the sha256's purpose.
        
       | core-utility wrote:
       | Hard mode: Password + Salt
        
       | moltenguardian wrote:
       | Someone more capable than I should make the final form of this:
       | No green or yellow feedback is provided, but only the timing
       | information used to calculate it. If cryptographers are serious
       | about side-channel attacks, why not show off the danger using no-
       | information Wordle?
       | 
       | (edit: Absurdle was taken)
        
         | p4bl0 wrote:
         | Absurdle already exists:
         | https://qntm.org/files/absurdle/absurdle.html ;)
        
         | Narishma wrote:
         | They should name it something else as absurdle is already
         | taken.
         | 
         | https://qntm.org/files/absurdle/absurdle.html
        
         | brainfish wrote:
         | An Absurdle exists[1], but instead of giving no hints it is
         | adversarial, e.g. changing the secret word to dodge your
         | guesses.
         | 
         | [1] https://qntm.org/files/absurdle/absurdle.html
        
           | SamPatt wrote:
           | That's actually quite fun!
        
         | dane-pgp wrote:
         | Given that speed/timing is important, and the rules are
         | designed to impede your progress, how about calling it Hurdle?
        
       | circa wrote:
       | I feel like Kramer with the moviefone number. "why don't you just
       | tell me..."
        
       | hbn wrote:
       | I won*!
       | 
       | *grabbed the expected hash from judgeEvent(), then made hash()
       | return it
       | 
       | edit: I see from other comments he actually pre-loaded
       | randomPassword() with a debugger statement. Oh well!
        
       | gfody wrote:
       | this would be a good variant for Grant Sanderson to point his
       | information theoretical solver at as a way to educate us on
       | how/why sha256 leaks information that might be leveraged to crack
       | a password, why to salt our hashes, etc.
        
       | Kluny wrote:
       | It's not hunter2, correcthorsebatterystaple, password123,
       | swordfish, or my gmail password. Anyone got it?
        
       | Drew_ wrote:
       | This is begging for a hard mode option
        
       | agys wrote:
       | More or less how PoW works...
        
       | moscovium wrote:
       | I laughed. I can't wait for this to be used as a problem on some
       | CS final.
        
       | raesene9 wrote:
       | nice, though I'm very disappointed the answer wasn't hunter2
        
         | torgard wrote:
         | Yeah same. From the source code, the answer is a random
         | 14-character string, generated on load:
         | function randomPassword() {             let letters =
         | 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
         | let digits = '0123456789';             let punctuation =
         | '!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~';             let s =
         | letters.repeat(7) + digits.repeat(4) + punctuation.repeat(3);
         | let length = 14;             let res = Array.from({length}, (()
         | => s[randomInt(s.length)])).join('');             debugger; //
         | douzo             return res;         }
        
           | boothby wrote:
           | I treated this the same way I started when solving absurdle,
           | wordle, and hurdle: find the database, get crackin' on a
           | decision tree. But, after estimating 1.2e17 possible
           | passwords in the "database," it only feels fair to accept the
           | invitation to use the debugger.
        
           | DonHopkins wrote:
           | I wish it accepted a given password from a url query
           | parameter, so this url would work:
           | 
           | https://rsk0315.github.io/playground/passwordle.html?passwor.
           | ..
           | 
           | Or the way bikeshed.com lets you configure the color with the
           | domain name, like:
           | 
           | https://bisque.bikeshed.com/
           | 
           | Then they could monetize it by selling gullible suckers NFTs
           | of urls pointing to Passwordle games of their passwords.
        
             | cobbal wrote:
             | Even better would be to link to the hash of the password,
             | then there would be no way to guess.
        
         | abdusco wrote:
         | I tried in these classics in vain:
         | 
         | - hunter2
         | 
         | - password
         | 
         | - correcthorsebatterystaple
        
         | zwayhowder wrote:
         | Literally my first guess.
        
         | MichaelVangard wrote:
         | I don't get it? Why would the answer be *******?
        
           | wayne-li2 wrote:
           | Wait, you can't see it either?
        
           | TonyTrapp wrote:
           | Because that would be hunter2 hilarious. I'd laugh my hunter2
           | ass off!
        
             | tetha wrote:
             | I think you should watch your language, young person.
        
             | sam0x17 wrote:
             | For reference: https://knowyourmeme.com/memes/hunter2
             | 
             | (I omitted the original bash.org link because they seem to
             | be down at the moment!)
        
       | marginalia_nu wrote:
       | I've tried 123456, password, and secret, and I'm all out of
       | ideas.
        
         | VanillaIceWater wrote:
        
         | takeda wrote:
         | hint: it needs to be 14 characters
        
           | remram wrote:
           | So password123456 then?
        
       | srinathkrishna wrote:
       | I was expecting the hash to be MD5 to at least give people a
       | chance! :D
        
       | burke wrote:
       | This would be kind of fun to write a solver for. You'd burn the
       | first few guesses to get some positional constraints, then filter
       | a rainbow table down to viable guesses. I'm not sure you'd be
       | able to get a very good success rate in just 10 possible guesses
       | though.
        
         | onionisafruit wrote:
         | If passwordle had a list of all possible solutions like wordle
         | does, this would be doable.
        
           | jfk13 wrote:
           | If it had a list of all possible solutions, it'd take quite a
           | bit more bandwidth to load...
        
         | tetha wrote:
         | If you can casually write an algorithm to break a modern
         | cryptographic hash in 10 guesses... I would like to know.
         | Because then I have to decide if I want to be a very good
         | friend of you, once you get rich, or if I want to stay as far
         | away from you as possible once the state intelligence agencies
         | come after you.
        
           | phire wrote:
           | It's not a cryptographic break.
           | 
           | It's simply a regular password cracking algorithm, but with
           | instead of knowing the full hash, you only know a partial
           | hash.
           | 
           | It should be viable, even without rainbow tables. That's why
           | plain, unsalted sha256 is very unsafe for password storage.
        
         | FabHK wrote:
         | It could work theoretically (the password contains around 90
         | bits, and from each row you can glean, dunno, some 64 bits of
         | info (64 characters that can be yellow, gray or green, so 101
         | bits, but there are constraints on that - very unlikely that
         | all characters are gray, for example)).
         | 
         | In practice, I don't think it's computationally feasible. You
         | can't keep all 2^90 = 10^27 possible solutions around in
         | memory. Bitcoin does 200 EH/s, so 2e20 hashes/s. So the entire
         | bitcoin mining network would have to work for 2 months (5e6
         | seconds) or so - don't see how you can meaningfully reduce the
         | work (it would indicate a flaw in SHA256, no?).
        
           | runnerup wrote:
           | To me it seems like the password is 14 bytes, because they're
           | 14 characters (112 bits). How do you get 90 bits?
           | 
           | It also uses 96 possible characters for each digit. Just
           | storing the 96^14 different passwords without even adding
           | their corresponding SHA hashes would require 5646 yottabytes.
           | Which is more than 4 orders of magnitude larger than all the
           | world's digital storage capacity combined together.
        
             | FabHK wrote:
             | As you say, each of the characters is not a full 8 bits
             | (namely a character out of an alphabet of 256), but chosen
             | from a smaller alphabet of 96 characters, and
             | log(96)/log(2) = log_2(96) [?] 6.58, so 6.58 * 14 = 92
             | bits. Then I deducted a bit or two ad-hoc for the way
             | they're drawn, with letters overrepresented. This could be
             | computed more precisely. But it's not more than 93 bits,
             | and not less than 83 bits, I'd say.
        
               | runnerup wrote:
               | Thank you so, so much for explaining this.
        
       | srinathkrishna wrote:
       | At least let people change the hash function to MD5 to give them
       | a chance! :D
        
       | davidfactorial wrote:
       | Oh my goodness this is the out loudest I have laughed at a tech
       | thing in a long time. Cheers to you :)
        
       | twopsix wrote:
       | Seems kinda impossible to do, lel
        
       | MailNerd wrote:
       | Please do not use SHA256 for storing passwords, use Argon2
       | 
       | ;)
        
       | skilled wrote:
       | What the hell.
        
       | CGamesPlay wrote:
       | Wordle has a "hard mode" where guesses aren't accepted unless
       | they reuse hints previously given. This is clearly missing from
       | this adaptation.
        
       | politelemon wrote:
       | Password is randomized on each load. Author has conveniently left
       | a debugger statement in the code.
        
         | TYMorningCoffee wrote:
         | I did not know about the debugger statement until I read your
         | comment: https://developer.mozilla.org/en-
         | US/docs/Web/JavaScript/Refe... . Thank you.
        
           | xeromal wrote:
           | It's pretty powerful. I oftentimes struggle to get VS code to
           | pick up a breakpoint when debugging serverless node
           | functions, but the debugger statement usually gets it
           | working.
        
           | aerovistae wrote:
           | Massively useful! I also recently learned you can right click
           | a line of code in the chrome debugger to add a logpoint -
           | i.e. "log the value of this expression when you reach this
           | point in the code" - so I don't have to manually add
           | console.log statements. Basically the reverse of discovering
           | the debugger statement!
        
             | AdamTReineke wrote:
             | One more trick:
             | 
             | Add a conditional breakpoint with the condition: `value =
             | "someOverrideValue", false` to make the breakpoint change
             | the value when it is reached without actually stopping
             | execution. Great for when you need state changed but the
             | app is always trying to override it. Here's a video from a
             | talk I gave five years ago that demonstrates that:
             | https://youtu.be/uixXOTCNbhs?t=1182
        
               | bspammer wrote:
               | Woah. Now that is incredibly useful.
        
             | therein wrote:
             | You can also right click a DOM element in the inspector and
             | click `store as a global variable`. It will automatically
             | do the following for you
             | 
             | temp1 =
             | document.querySelector(SELECTOR_FOR_NODE_YOU_PICKED)
        
             | core-utility wrote:
             | This was news to me too
        
             | culturestate wrote:
             | _> you can right click a line of code in the chrome
             | debugger to add a logpoint...so I don 't have to manually
             | add console.log statements_
             | 
             | Thank you, this is the best thing I've learned in 2022.
        
               | Vinnl wrote:
               | Next try https://www.replay.io, which allows you to add
               | logpoints _to code that has already executed_.
        
         | core-utility wrote:
         | Part of me wishes the author just took common passwords from
         | rockyou.txt so that they're at least guessable. Though random
         | really does add to the absurdity.
        
           | jpeter wrote:
           | Or use a new password every day like worle. So you have a
           | community effort to guess it
        
             | faeyanpiraat wrote:
             | Is any of the information (yellow/green for characters)
             | presented getting you closer to the real answer in any
             | meaningful way though?
        
               | jerf wrote:
               | According to the best current knowledge of humanity, it
               | provides no information whatsoever.
               | 
               | However, proving that is difficult. It is possible that
               | there exists an algorithm that could narrow in on the
               | answer from hashes. Such an algorithm could run quickly,
               | but it could also potentially take quite significant
               | computation. We don't know what the true, optimal answer
               | to this question is.
        
               | mlyle wrote:
               | > According to the best current knowledge of humanity, it
               | provides no information whatsoever.
               | 
               | ??? My first guess has two green letters, or 8 bits of
               | the hash are known. This excludes 255/256 of possible
               | passwords-- so if there's a dictionary, it's way cut
               | down. I also know for the other 30 digits a value that
               | they are _not_ -- this is about .1 bits apiece, for 3
               | more bits. And I get a few more bits from knowing the
               | population count for each digit.
               | 
               | One guess has reduced the search space by a factor of
               | 10000+. If I say, know the word is in
               | /usr/share/dict/words, the number of possibilities has
               | dwindled from 230,000 to something around 20.
               | 
               | Now, in this case, with a 14 character randomized
               | password-- the amount of benefit is limited. The search
               | space is still significantly shrunk by each guess, but in
               | a way that is difficult to iterate.
        
               | jerf wrote:
               | This is one of those places where it's easy to conflate
               | computer bits with information theory bits. You may have
               | eight computer bits, but in order for _you_ to have eight
               | bits of _information_ , you must have _your_ search space
               | cut down by a factor of 256, not just the abstract
               | concept of a search space cut down.
               | 
               | Can you enumerate the remaining 1/256th of the search
               | space? Not with anything other than a brute force search,
               | minus the one password you tried. The exact same brute
               | force search that you would have needed to solve the
               | problem in the first place. Your one password attempt has
               | yielded one password's worth of knowledge. _You_ , a
               | human, don't have eight bits of information. You have
               | almost nothing.
               | 
               | In principle, such a guess _does_ eliminate 8 bits of
               | information, but we have no way of manifesting that. In
               | principle if we had a full list of the shortest passwords
               | that led to the given hash, we could strike off the non-
               | matching entries, but no human can do that. In principle
               | an easier algorithm than the brute-force search exists,
               | but we have no idea what it is, and we don 't know what
               | it would look like, whether it would be an incremental
               | improvement over brute force or if there's hypothetically
               | an algorithm that could do it on your cell phone in a
               | couple of seconds or what.
               | 
               | Hashing and cryptography in general hide in this space
               | between the theoretical information leakage and the
               | practical inability to do anything with it. You have 8
               | theoretical bits and just shy of 0 real, practical bits.
        
               | residualmind wrote:
               | Are you sure thats how evenly distributed hash algorithms
               | work? change one letter of your string, or just make it
               | longer or shorter - none of your green fields will stay.
        
               | mlyle wrote:
               | > Are you sure thats how evenly distributed hash
               | algorithms work? change one letter of your string, or
               | just make it longer or shorter - none of your green
               | fields will stay.
               | 
               | True. But still, I know the vast majority of words in my
               | dictionary don't match those two green fields after
               | hashing, and can be eliminated from further consideration
               | as the password.
        
               | thewakalix wrote:
               | Nothing about this algorithm relies on similar words
               | producing similar hashes. If the word "foobar" has a 0 in
               | the first digit of its hash, and you see a green 1 in the
               | first digit in Passwordle, then you know that the answer
               | can't be foobar.
        
               | SamBam wrote:
               | No, that's the joke of the site.
        
               | core-utility wrote:
               | Inherently with a (proper) hashing algorithm, the value
               | and placement of characters in the hash means next-to-
               | nothing in terms of the actual original text. For
               | example:
               | 
               | password = 5e884898da28047151d0e56f8dc6292773603d0d6aabbd
               | d62a11ef721d1542d8
               | 
               | passwurd = 1966e583daff0fce5630d5de44f303f0e77f77940f02c7
               | d648defadc31059c7b
               | 
               | Notice they're very different results, even though the
               | original text only has 1 character difference.
        
               | therein wrote:
               | The Avalanche effect for anyone interested in reading
               | more.
               | 
               | https://en.wikipedia.org/wiki/Avalanche_effect
        
               | AlexAndScripts wrote:
               | Sort off, if you already have a lookup table of possible
               | solutions.
        
               | FabHK wrote:
               | ... which you won't, because the space is too large
               | (around 90 bits of entropy if I'm not mistaken, bit less,
               | so 10^27-ish possible solutions).
        
             | oceliker wrote:
             | That sounds like Bitcoin with extra steps
             | 
             | Jokes aside, that would actually be fun if the password is
             | actually reasonably guess-able, I would definitely give it
             | a try if that existed
        
           | NoboruWataya wrote:
           | My first try was "hunter2", then I gave up.
        
           | ugjka wrote:
           | It's OK, the goal is to find a collision
        
       | judofyr wrote:
       | Plain SAH256? Come on, use a salt please!
        
       | drtz wrote:
       | No bcrypt?
        
         | drdaeman wrote:
         | Should've been Argon2id
        
       | aspyct wrote:
       | Aaah this hurts my brain
        
       | syngrog66 wrote:
       | brilliant. now someone do this for Bitcoin/Ethereum address
       | private keys
       | 
       | (asking for a friend. _cough_ )
        
       | boothby wrote:
       | Got it in one "guess." Apparently douzo means "here you are."
       | Makes me think the brick was deliberately left in the door for
       | folks who look for such things.
        
         | koolba wrote:
         | My first guess was "friend", a la the Doors of Durin.
         | 
         | http://tolkiengateway.net/wiki/Doors_of_Durin
        
           | yreg wrote:
           | It should be _mellon_.
        
           | Bad_CRC wrote:
           | "The Four Most-Used Passwords Are Love, Sex, Secret, and God"
        
             | coreyp_1 wrote:
             | You hacker... https://www.youtube.com/watch?v=0Jx8Eay5fWQ
        
         | [deleted]
        
         | faldore wrote:
        
       | daneel_w wrote:
       | There's something interesting to note in the visualized gradient
       | distribution after guessing some common English words:
       | https://i.imgur.com/hDSBaYw.png
        
         | eganist wrote:
         | That's a consequence of certain characters not reappearing in
         | the hash as compared to the hash of the actual password.
         | 
         | This would become more apparent if this traded in sha512s
         | instead.
        
       | moritonal wrote:
       | There is like... four people I know I could send this to who'd
       | laugh, it's so niche. Yet I also laughed out loud when I got how
       | conventionally impossible it is.
        
         | mlyle wrote:
         | Is it?
         | 
         | 6 guesses and I have 14 hex digits (56 bits) of the hash, along
         | with knowing the population counts for all the numbers. This is
         | enough to run a password cracker and determine the plaintext if
         | it's a readily guessed password.
         | 
         | Sure, it breaks conventional use of rainbow tables, etc, but...
         | 
         | edit: Eh, 14 characters. OK, that's pretty resistant to
         | anything other than debugging.
        
           | [deleted]
        
           | residualmind wrote:
           | How does that help you when any of your inputs' digest is not
           | related to any other's, not even knowing the target length of
           | the original message? what am i missing?
        
             | thewakalix wrote:
             | The correct password is impossible to _calculate_ from the
             | given data, but it seems like it should be possible to
             | check whether a password matches the data.
        
               | residualmind wrote:
               | Yeah because the algo is known, it is SHA256.
               | 
               | The thing is you don't know the length of the password.
               | It could be more than the number of hydrogen atoms in the
               | universe, or 12. You still have to brute force or look up
               | one possible solution (or collision thereof).
               | 
               | The whole thing just shows that a hash makes ZERO
               | applicable inferable assertions about the message
               | (password).
               | 
               | Thats the definition of evenly distributed hashing
               | functions: change anything in the message, including
               | length, and there will be no identifiable relation
               | between the hashes of one messsage and the next you try,
        
               | jacquesm wrote:
               | > The thing is you don't know the length of the password.
               | It could be more than the number of hydrogen atoms in the
               | universe, or 12.
               | 
               | I'll take 12 then.
        
               | bushbaba wrote:
               | Well we know it has to fit in a string data type. And
               | there's only soooo much ram available to a JavaScript
               | variable.
        
               | AdamJacobMuller wrote:
               | Not necessarily. The hash could have been generated with
               | something other than javascript.
               | 
               | In fact because functions like sha256 are iterative it's
               | possible to hash a password which is longer than the RAM
               | in a system. Technically possible to hash a password
               | which is longer than storage in a system too, if you
               | don't care about storing the password.
        
               | enkid wrote:
               | I mean, anything past 256 bits is going to have a
               | collision, so that doesn't matter, but you're right that
               | the entire point of a hash is that even if you know the
               | hash, it's very very hard to find what the plaintext is.
        
               | mtreis86 wrote:
               | There are a number of reversible hash algos. The point of
               | hash is that the small changes in the input produce big
               | changes in the output so even a 1-bit change to the input
               | produces a completely different output. Some hash algos
               | having trap door functionality is really more of a bonus.
        
               | throwawaynay wrote:
               | "The thing is you don't know the length of the password.
               | It could be more than the number of hydrogen atoms in the
               | universe, or 12."
               | 
               | You don't have to know the length though, just the length
               | of potential collisions(so between 1 and whatever max
               | length is the hash)
        
               | nilsbunger wrote:
               | i don't think anyone has created a hash collision in
               | SHA-256 yet (meaning, given a hash, create an input that
               | generates the hash)
        
               | throwawaynay wrote:
               | yeah but who cares? it's still 100% possible, you just
               | need a lot of time
        
             | residualmind wrote:
             | [ @some-sober-math-guy insert probabilities ]
        
           | acchow wrote:
           | This isn't how Sha works
        
         | JAlexoid wrote:
         | Oh wow! You have a lot of friends!... (unironic self
         | deprecating voice)
        
         | antirez wrote:
         | You can easily guess the right sha256 just using random strings
         | and overlapping correct characters and then you can run a
         | dictionary attack on it, or a brute force one if it's not too
         | long.
        
         | VikingCoder wrote:
         | Winners never quit. And quitters never win.
         | 
         | But those who never win AND never quit are idiots.
        
         | eganist wrote:
         | I ended up crossposting it to the few security rooms I'm in for
         | quick laughs
         | 
         | But for what it's worth, this also serves as a great initial
         | CTF-type introduction to how debuggers work in web browsers.
        
           | jerf wrote:
           | If the debugger is open, Passwordle automatically breaks the
           | execution right where the answer is determined.
           | 
           | Now that's service.
        
             | umvi wrote:
             | TIL there's a "debugger" keyword[0] in JavaScript that
             | auto-sets a breakpoint at that line.
             | 
             | [0] https://developer.mozilla.org/en-
             | US/docs/Web/JavaScript/Refe...
        
               | therein wrote:
               | int 3 of Javascript. I use it all the time because
               | webpacked assets make it hard to find the line of code I
               | am looking for.
        
               | geraldwhen wrote:
               | If you build source maps this isn't a problem.
        
               | y4mi wrote:
               | It's always surprising how few people know of these
               | featured, same with the other console functions such as
               | table, time etc
        
         | LeoNatan25 wrote:
         | I laughed. It's excellent, and great fit for the crowd here.
        
         | jacobkg wrote:
         | I laughed so hard
        
         | cco wrote:
         | As someone that works at an authentication API company, there
         | are _dozens_ of us who found this hilarious.
         | 
         | > Yet I also laughed out loud when I got how conventionally
         | impossible it is. Maybe give it a whirl with
         | https://sha256algorithm.com/? haha
        
       ___________________________________________________________________
       (page generated 2022-02-16 23:00 UTC)