[HN Gopher] Show HN: I made a C program to create a vanity SHA-1...
       ___________________________________________________________________
        
       Show HN: I made a C program to create a vanity SHA-1 hash for a
       text file
        
       Author : keepamovin
       Score  : 39 points
       Date   : 2025-03-28 10:55 UTC (3 days ago)
        
 (HTM) web link (gist.github.com)
 (TXT) w3m dump (gist.github.com)
        
       | keepamovin wrote:
       | After experimenting with cycling punctuation, and random
       | capitalization I hit on the idea to use each word as a bit and
       | map the original version of the word to 0 and the title-case-
       | toggled version of the word to 1.
       | 
       | Then just use the text file as a "counter nonce" and count from 0
       | until we find a counter that hashes to the vanity prefix we want.
       | 
       | The advantage of this is flipping the capitalization of the first
       | letter of each word doesn't drastically alter the visual
       | appearance of the file (tho it may alter semantics!), and you get
       | an easy to understand amount of entropy (number of states) to
       | walk through.
       | 
       | The C version linked only supports counting up to ~4 billion but
       | it could be easily extended. A JS version using BigInt can go
       | unlimited.
       | 
       | For reference the included example text took a surprising 2
       | billion iterations to discover the correct 8 digit hash which is
       | about what you'd expect from random (i.e., half the state space
       | of 16*8 = (2*4)*8)
        
       | susam wrote:
       | The SHA-256 hash of this sentence begins with 0573e7473.
        
         | orphea wrote:
         | The SHA256 for this sentence begins with: one, eight, two, a,
         | seven, c and nine.
        
           | tmountain wrote:
           | Oh boy, here we go...
        
         | xeckr wrote:
         | Nice one.
        
       | kazinator wrote:
       | Don't bother applying here if your github doesn't look like this:
       | $ git log --oneline       deadbeef5 (HEAD -> master): Revised
       | documentation of frobozz widget.       0cafef00d scrot_compress:
       | fixed rare recursion case.       5ca1ab1e1 image_convolve: use
       | thread pool for better performance.
        
         | coolThingsFirst wrote:
         | what?
        
           | frutiger wrote:
           | Read the commit sha prefixes as English
        
           | celegans25 wrote:
           | Look at the hashes of the commits
        
         | jagged-chisel wrote:
         | Sadly, you won't get any senior applicants if you're mistaking
         | the website for the tool.
        
           | kazinator wrote:
           | Here, that touch is necessary for a hint of realism.
        
         | actinium226 wrote:
         | I don't get the last one?
        
           | ruffrey wrote:
           | "scalable"
        
       | coolThingsFirst wrote:
       | Interesting, also this quote is as interesting as the code:
       | 
       | "Your job, throughout your entire life, is to disappoint as many
       | people as it takes to avoid disappointing yourself."
        
         | metadat wrote:
         | That took a second to process and sink in.
         | 
         | Added to my shameful, neurotic HN profile.. haha, thank you!
        
       | saulpw wrote:
       | Cool! I made a multithreaded version about 10 years that works
       | for binary files like .zip files: https://github.com/century-
       | arcade/src/tree/master/tools/vain...
        
       ___________________________________________________________________
       (page generated 2025-03-31 23:01 UTC)