How Long It Actually Takes to Crack a Password
The answer depends far more on which hashing algorithm protects the password than on how many symbols it contains. Here is the actual math, worked through for both.
Working notes on search, performance and developer tooling — written when something turned out to be more interesting than expected.
The answer depends far more on which hashing algorithm protects the password than on how many symbols it contains. Here is the actual math, worked through for both.
JSON looks like a JavaScript object literal, so people assume they behave identically. Undefined, dates, key order and duplicate keys all say otherwise.
A QR code is just a wrapper around a URL, with no way to preview the destination before you scan. That single gap is the entire attack, and it has a name now.
Data URIs let you embed an image directly in HTML or CSS as Base64 text. It works, it's overused, and it makes some pages slower rather than faster.
Base64 is an encoding, not a cipher. It has no key, protects nothing, and is trivially reversible — here is what it is actually for.
UUIDs are said to be unique enough to ignore the possibility of a collision entirely. Here is the birthday-paradox math behind that claim, worked out in full.
Requiring a capital letter, a digit and a special character feels like it should help. NIST dropped the recommendation years ago, because in practice it mostly doesn't.
Scanning a QR code to join WiFi works because of a plain-text string format your phone's camera already understands. Here is exactly what's inside it.
Four common ways to identify a row, and the trade-offs that actually distinguish them — size, coordination, what they leak, and whether anyone else uses the same format.
Google replaces meta descriptions on roughly two thirds of queries. Here is when it happens, why, and the cases where your description still decides the click.
A JSON document can parse perfectly and still have the wrong shape entirely. Here is the difference between syntax validation and schema validation, and when you need both.
Base64 strings sometimes end in one or two equals signs and sometimes end in none at all. Here is the bit-level reason why, and when it's safe to drop them.
Random v4 UUIDs scatter writes across your index and cause page splits. Version 7 sorts by time and fixes it, without giving up global uniqueness.
Modern browsers can decode, resize and re-encode images locally using Canvas. Here is how it works, what quality setting to pick, and where the approach breaks down.