# Quant triga de debò a trencar-se la teva contrasenya

> El temps que aguanta una contrasenya no el decideix la contrasenya: el decideix el hash amb què la va desar el lloc. I d'això no te'n diuen res quan t'hi registres.

2026-03-04 · David Carrero · password.es
Original: https://password.es/ca/blog/quant-triga-a-trencar-se-la-teva-contrasenya/

---

Quan una web et diu que la teva contrasenya trigaria *tres milions d'anys* a
trencar-se, s'està deixant la part important de la frase. La pregunta correcta
no és quant triga. És **quant triga contra què**.

I la resposta al *contra què* no la tries tu. La va decidir un desenvolupador
de la botiga on vas comprar unes bambes el 2019, quan va triar com desar la
teva contrasenya a la seva base de dades. Tu vas escriure la mateixa cadena de
vint caràcters als dos llocs. En un aguanta segles; a l'altre cau abans de
dinar.

## El número que falta a l'equació

Un atac per força bruta és aritmètica vulgar: nombre de candidats que cal
provar, dividit entre candidats que pots provar per segon. El primer factor
depèn de la teva contrasenya —la seva llargada, el seu alfabet, si és o no en
un diccionari—. El segon **no té absolutament res a veure amb tu**.

El segon factor depèn de dues coses: el maquinari de l'atacant i, sobretot, la
funció amb què el lloc va convertir la teva contrasenya en el bunyol que desa
a la seva taula d'usuaris. Aquesta funció es diu *hash*, i no totes costen el
mateix de calcular.

MD5 i SHA-1 es van dissenyar per ser ràpides. És una virtut: són funcions de
hash de propòsit general, pensades per resumir missatges i verificar
integritat, i allà el que vols és processar un gigabyte sense que et doni temps
d'aixecar-te a buscar un cafè. Quan algú les fa servir per desar contrasenyes,
aquesta virtut es converteix en el problema. Una funció que pots calcular
milions de vegades per segon és una funció que **l'atacant també pot calcular
milions de vegades per segon** — i ell té targetes gràfiques i tot el cap de
setmana per endavant.

bcrypt i Argon2 es van dissenyar amb l'objectiu contrari. Són lentes a posta i
—això és l'elegant— amb lentitud regulable. Niels Provos i David Mazières van
presentar bcrypt el 1999 amb un títol que ho diu tot: *A Future-Adaptable
Password Scheme*. La idea era que la funció es pogués encarir amb els anys, al
ritme al qual s'abaratís el maquinari. Argon2, que va guanyar la Password
Hashing Competition el 2015, hi va afegir una altra volta: no només costa
temps, costa **memòria**, que és justament allò que les GPU tenen a mà amb menys
alegria.

Entre un hash ràpid i un hash lent ben configurat no hi ha una diferència de
percentatges. Hi ha ordres de magnitud. Molts.

## Els benchmarks existeixen, i són públics

Res d'això no és especulació. *Hashcat*, l'eina que fa servir mig món per
trencar contrasenyes —els bons inclosos—, porta un mode de benchmark que
qualsevol pot executar a la seva màquina i que mesura, algorisme per algorisme,
quantes vegades per segon es pot calcular cadascun. La comunitat publica
aquestes taules cada vegada que surt una GPU nova.

El que és interessant d'aquestes taules no és cap número concret —que a més
caduca amb cada generació de maquinari— sinó **la distància entre les files**.
Ordenes la llista per velocitat i veus MD5 dalt de tot, al seu propi planeta.
Baixes i baixes, i al fons de la taula hi ha bcrypt i Argon2, amb xifres que no
s'assemblen en res. És la mateixa contrasenya. És la mateixa GPU. L'única cosa
que ha canviat és com va decidir desar-la el lloc.

Per això «3 milions d'anys» sense dir contra quin hash és màrqueting, no una
mesura. És com anunciar que el teu cotxe triga sis hores a arribar sense dir a
on va.

## Offline i online: dos mons que no es toquen

Hi ha una segona distinció que gairebé ningú no explica i que canvia el
resultat igual de brutalment.

En un atac **online**, l'atacant prova contrasenyes contra el formulari
d'accés, com faria un usuari. El ritme no el posa el seu maquinari: el posa el
servidor. Hi pot haver límit d'intents, bloqueig temporal, un *captcha*, retard
entre peticions, alertes quan detecta mil errors des de la mateixa adreça.
Contra un lloc decentment defensat, un atac online és lent, sorollós i força
estúpid. L'aritmètica és tan dolenta per a l'atacant que la força bruta pura
gairebé no s'intenta: es proven les quatre contrasenyes de sempre contra
milions de comptes, que és un altre joc.

En un atac **offline**, l'atacant ja té el bolcat de la base de dades. Se
l'emporta a casa. Allà no hi ha servidor, ni límit d'intents, ni ningú mirant:
hi ha les seves targetes gràfiques i la seva factura de la llum. Pot provar
durant mesos sense que ningú se n'assabenti, i sabrà que ha encertat ell tot
sol, comparant hashos. Aquí és on el hash ho decideix tot, perquè el hash és
literalment l'única cosa que el frena.

I convé ser honest amb les probabilitats: l'escenari offline no és exòtic. És
el que passa cada vegada que es filtra una base de dades. Quan LinkedIn va
perdre la seva el 2012, l'anàlisi del bolcat filtrat va mostrar que desava les
contrasenyes amb SHA-1 **sense sal**: un hash ràpid i sense l'ingredient que
evita precalcular taules. Que se'n trenquessin tantes i tan de pressa no va ser
només qüestió que els usuaris triessin malament. Va ser, sobretot, una decisió
d'enginyeria que cap usuari no va veure mai.

## El que fem aquí, i per què ho diem

El nostre [comprovador](/ca/comprovador/) assumeix **10¹² intents per segon,
offline, contra un hash ràpid**. Està escrit a la mateixa pàgina, sota el
resultat, i no per transparència decorativa: sense aquesta dada, el temps que
et mostra no vol dir res.

És deliberadament el cas dolent. Assumim que la base de dades ja està filtrada,
que l'atacant té maquinari seriós, que el lloc va desar la teva contrasenya de
la pitjor manera raonablement possible i que a sobre coneix el teu alfabet i la
teva llargada. Si el lloc va fer servir bcrypt ben configurat, la xifra real
puja molts ordres de magnitud i la teva contrasenya aguanta moltíssim més del
que et diem.

Ens estimem més equivocar-nos per aquest cantó. **Un comprovador que et
felicita s'està felicitant a si mateix.**

## La conclusió incòmoda

La teva contrasenya no té un temps de trencament. En té un *per cada lloc on
l'hagis feta servir*, i aquest temps el fixa gent que no coneixes amb criteris
que no publica.

D'això se'n dedueixen dues coses, i són les de sempre. La primera: com que no
pots controlar el hash, **controla l'entropia**, que és la meitat de l'equació
que sí que és teva —per això el [generador](/ca/) t'ensenya bits i no un
percentatge simpàtic—. La segona, i més important: si cada lloc té la seva
pròpia contrasenya, el que la va desar en MD5 només pot regalar la d'aquell
lloc.

Perquè la baula feble no és la teva contrasenya. És el pitjor lloc on la vas
escriure.

---

*Fonts: benchmarks públics de hashcat (`hashcat -b`), consultables i
reproduïbles · N. Provos i D. Mazières, «A Future-Adaptable Password Scheme»,
USENIX, 1999 · Password Hashing Competition, guanyada per Argon2 el 2015 · el
model d'amenaça declarat al comprovador de password.es: 10¹² intents/s,
offline, hash ràpid · bretxa de LinkedIn del 2012: la companyia va confirmar la
filtració, i l'ús de SHA-1 sense sal es va establir en analitzar el bolcat
publicat.*
