← Back to context

Comment by tech234a

4 hours ago

The webpage would have to scan the entire UUID space to create this fingerprint, which seems unlikely.

Just have a database of UUIDs. Seems pretty trivial to generate and sort as it's only 16 bytes each.

  • That's actually a bright idea! Have you ever thought about applying for VC funds?

    Once you deliver that, you can also think about a database of natural numbers!

  • "Just" have a database, and then what? I can set up a database of all UUIDs very easily, but I don't think it's helpful.

  • lol

    Let's go a step further and just iterate through them on the client. I plan on having this phone well past the heat death of the universe, so this is guaranteed to finish on my hardware.

      function* uuidIterator() {
       const bytes = new Uint8Array(16); 
       while (true) {
         yield formatUUID(bytes);
    
         let carry = 1;
         for (let i = 15; i >= 0 && carry; i--) {
           const sum = bytes[i] + carry;
           bytes[i] = sum & 0xff;
           carry = sum > 0xff ? 1 : 0;
         }
     
         if (carry) return;
       }
     }
     
     function formatUUID(b) {
       const hex = [...b].map(x => x.toString(16).padStart(2, "0"));
       return (
         hex.slice(0, 4).join("") + "-" +
         hex.slice(4, 6).join("") + "-" +
         hex.slice(6, 8).join("") + "-" +
         hex.slice(8, 10).join("") + "-" +
         hex.slice(10, 16).join("")
       );
     }
    

    This is free. Feel free to use it in production.