Verification

This page recomputes every test vector from SPEC.md in your own browser, with the same code this site uses. If they all pass, this build matches the specification.

The keys here are public test data. Never use them for a real account.
0/47 vectors passed
VectorDescriptionResult
v01default recipe, catalog match-
v02alias resolves to the same id as above-
v03full URL with path and query resolves the same-
v04subdomain of a catalog domain-
v05bare domain, catalog match-
v06unknown domain falls back to the registrable label-
v07URL with userinfo and port-
v08Turkish e-commerce, catalog match-
v09Turkish alias with diacritics-
v10Turkish dotted capital I and S-cedilla-
v11same name typed on an English keyboard-
v12Turkish soft g and umlauts-
v13mixed case and extra spaces collapse-
v14NFKC: full-width characters fold to ASCII-
v15German sharp s expands to ss-
v16Polish and Czech diacritics-
v17non-Latin script becomes dashes-
v18emoji between words is dropped to a dash-
v19key typed without dashes-
v20key typed in lower case-
v21key typed with spaces instead of dashes-
v22key with O/I/L confusables that normalize into 0/1/1-
v23counter 2 after one refresh-
v24counter 3-
v25counter 17, two-digit decimal-
v26counter 1000-
v27email login-
v28same email in mixed case normalizes identically-
v29email with plus tag-
v30Turkish login folds like a site id-
v31login with a pipe, which is stripped-
v32second account on the same site-
v33minimum length-
v34length 12-
v35length 16, no symbols (bank-style rule)-
v36maximum length-
v37letters only-
v38lowercase and digits only-
v39digits only, PIN style-
v40symbols only, stress case-
v41uppercase only-
v42all-zero payload key-
v43all-max payload key-
v44all-max key, long recipe with login-
v45128-character site id, the maximum-
v46long multi-word Turkish name-
v47120-character login-

The whole algorithm is written down in SPEC.md and ships with 47 test vectors. Both the web version and the Android version have to pass every one of them, which is how we know the two platforms produce bit-for-bit identical passwords from the same key.