# Zer zegoen gaizki password.es-en, eta jada ez

> Egunero gauzak nola egin behar diren esaten duen gune batek kontatu behar du noiz ez zituen hala egiten. Hau da gure etxean aurkitu duguna, zifrak aurrean.

2026-08-31 · David Carrero · password.es
Original: https://password.es/eu/blog/zer-zegoen-gaizki-password-es-en/

---

Blog honek hamabi artikulu ditu gauzak nola egin behar diren azaltzen: luzerak
ikurrek baino gehiago balio duela, kudeatzaile bat ez dela erosotasuna baizik eta
araua betetzeko modu bakarra, ehuneko batek ez duela ezer esaten.

Hori idaztea erraza da. Deserosoa zeure gunea neurri berarekin begiratzea da.
**Egin dugu, eta hiru gauza zeuden gaizki.** Hemen doaz osorik, salatu dituzten
zenbakiekin, segurtasun-gune batek bere asmatzeak baino argitaratzen ez baditu
askoz gutxiago balio duelako.

## Egiaztatzailea izozten zen idazten ari zinen bitartean

Egiaztatzaileak zure pasahitza [zxcvbn](https://github.com/dropbox/zxcvbn)-ekin
aztertzen du, maiuskulak zenbatu beharrean ereduak bilatzen dituen liburutegia.
Oso ondo dabil eta kostu bat du: **osorik exekutatzen da, kolpe batean, orria
marrazten duen hari berean.** Martxan dagoen bitartean, nabigatzaileak ezin du
beste ezer egin.

Kostu hori azkar hazten da luzerarekin. Guneak zerbitzatzen duen pakete berarekin
neurtuta, eta jendeak benetan idazten dituen pasahitzekin —hitzak, urteak, `@`
`a`-ren ordez—:

| luzera | exekuzio bat |
|---|---|
| 16 karaktere | 45 ms |
| 20 karaktere | 121 ms |
| 32 karaktere | 273 ms |
| 64 karaktere | 843 ms |
| 128 karaktere | 3.621 ms |

Hona arte, normala. Arazoa zenbat aldiz abiarazten genuen zen.

Eremuak **bi** entzule desberdin zituen lotuta, `input` eta `keyup`. Tekla normal
batek biak abiarazten ditu. Beraz, letra bat sakatzen zenuen bakoitzean, analisi
osoa **birritan** exekutatzen zen: 90 ms 16 karaktereko pasahitz batean, segundo
erdi 32koan.

Eta ez zegoen ezer geldiarazten zuenik: ez tenporizadorerik, ez luzera-mugarik, ez
hari bereizirik. Hogei bat karakteretik aurrera, nabigatzaileak gehiago behar zuen
aztertzeko zuk hurrengo tekla sakatzeko baino. Sakatzeak inoiz hustutzen ez zen
ilara batean pilatzen ziren, eta **orriak erantzuteari uzten zion idazten ari
zinen bitartean**. Pasahitz luze bat itsasteak segundo batzuez izozten zuen.

Konponketa bi aldaketa txiki dira. `keyup` entzulea kendu dugu, `input`-ek jada
idaztea, itsastea, ezabatzea eta kudeatzailearen betetze automatikoa hartzen
dituelako: lanaren erdia desagertzen da ikusten duzunetik ezer aldatu gabe. Eta
150 milisegundoko itxaronaldia gehitu dugu: idazten ari zaren bitartean ez da ezer
aztertzen, eta gelditu bezain laster aztertzen da. Inork ez du hain poliki
idazten hori nabaritzeko.

Emaitza berdin-berdina da. `Barcelona1992$`-k gauza bera dio oraindik:
«barcelona» hiztegian dagoela, 1992 urte bat dirudiela, eta segundo bat baino
gutxiagoan erortzen dela.

## Deskribapena esaldi erdian moztuta zegoen hamabost hizkuntzatan

Hau ergelagoa eta lotsagarriagoa da.

Bilatzailean izenburuaren azpian agertzen den esaldia —meta description—
**hamazortzi hizkuntzetatik hamabostetan moztuta zegoen**. Gaztelania, koreera eta
japoniera baino ez ziren salbatzen. Norbaitek luzeragatik moztu zuen noizbait, hitz
erdian ebaki zuen, eta gero inork ez zuen begiratu.

Hiru hizkuntzatan ebakia karaktere berezi baten erdi-erdian erori zen, beraz
Google-n argitaratzen genuena hau zen:

| hizkuntza | zer zerbitzatzen genuen | zer esan behar zuen |
|---|---|---|
| portugesa | `…datas e padr&o` | `padrões` |
| turkiera | `…arıyor ve ger&cced` | `gerçekten` |
| vietnamera | `…chúng tôi tra mật kh&#` | `mật khẩu` |

Deigarriena non zegoen da: gune osoko **ondoen funtzionatzen duen orrian**.
Egiaztatzaileak sortzaileak baino askoz hobeto bihurtzen du, eta deskribapena
hautsita zuela egiten zuen. Hamabostak osatuta daude.

Bide batez, koreeraz, japonieraz eta vietnameraz marka izenburuaren hasieratik
amaierara eraman dugu. Bilatzailean domeinua bereiz ikusten da jada, beraz
«password.es ·» hasteak gehien balio duen tokia besterik ez zuen xahutzen.

## Ehun milioitik bateko alborapena

Sortzaileak karaktere bakoitza `crypto.getRandomValues()`-ekin aukeratzen du,
nabigatzailearen ausazko iturri ona. Baina zenbaki eskerga hori «alfabetoko
posizio bat» bihurtzeko hondarreko zatiketa egiten genuen, eta han tranpa klasiko
bat dago: 2³² ez da 83ren multiploa, beraz **alfabetoko lehen posizioak azkenak
baino apur bat maizago ateratzen ziren**.

Zenbat da «apur bat»: 89 karaktere arteko alfabeto batekin, ehun milioitik bateko
ordenakoa. Ez du ezer aldatzen. Ez du zure pasahitza nabarmen ahulagoa egiten,
ezta gutxiagorik ere.

Berdin konpondu dugu, eta hiru lerro dira: 4.294.967.296 balio posibleetatik
soberan dauden 45ak baztertzen dira eta berriro zozketatzen da. Pasahitzei buruzko
gune batean, «arbuiagarria da» ez da arrazoi ona alborapen bat uzteko kentzeak
hori kostatzen duenean.

## Zer falta zen: nabigatzaileak promesa betearaztea

Artikulu oso bat dugu azaltzen [zure pasahitza ez dela hemendik ateratzen](/eu/blog/zergatik-ez-dugu-zure-pasahitza-inora-bidaltzen/).
Egia zen, eta hala ere gure esaldi bat besterik ez zen: teknikoki ezerk ez zuen
eragozten injektatutako script batek beste zerbait egitea.

Orain orri bakoitzak edukiaren segurtasun-politika bat darama. Axola duten bi
zatiak:

- **Ez da exekutatzen orria eraikitzean bertan ez zegoen script bat ere.** Script
  legitimo bakoitza bere aztarnarekin sinatuta dago; injektatutako batek ez du bat
  egiten eta nabigatzaileak exekutatzeari uko egiten dio.
- **`connect-src 'none'`.** Guneak ez du sare-eskaera bakar bat ere egiten
  JavaScriptetik, eta orain nabigatzaileak ezartzen du hori. Egunen batean zerbaitek
  idazten duzuna nonbaitera bidaltzen saiatuko balitz, ez litzateke aterako.

Promesa adierazpen izateari utzi eta arau bihurtu da.

## Zer dagoen oraindik gaizki

**Abuztuaren 31ko eguneraketa.** Atal honetako hiru gauzak artikulua argitaratu zen egun berean konpondu ziren: hamabost hizkuntzek jada benetako motorra deskribatzen dute, bi eskalak bat dira, eta egiaztatzailearen ohiko galderek ikurren kontua azaltzen dute. Idatzita uzten dira, gaizki egon zenaren erregistroak gune akatsgabe baten argazkiak baino gehiago balio duelako.

Hemen irabazten du artikulu honek bere tokia.

**Hamabost hizkuntzek egiaztatzailea motor zaharra bezala deskribatzen jarraitzen
dute.** Orri horien testuak dio PasswordMeter-en logika klasikoa erreproduzitzen
duela. Jada ez: motor hori aldatu egin zen `Pasahitza1!`-ri «oso sendoa» ematen
ziolako eta bost hitzeko esaldi luze bat suspenditzen zuelako, hau da, esan
beharrekoaren guztiz kontrakoa. Gaztelania, koreera eta japoniera eguneratuta
daude; beste hamabostak ez.

**Bi eskala desberdin daude etxe berean.** Azalak pasahitz bat sendoa den bere
biten arabera erabakitzen du; egiaztatzaileak hausteak zenbat kostatuko lukeen
denboraren arabera. Irizpide desberdinak, eta inon ez dugu abisatzen.

**Sortzaileak eta egiaztatzaileak ez dituzte ikur berak zenbatzen**: batak 27
erabiltzen ditu, besteak 33 suposatzen ditu. Aldea txikia da, baina hor dago.

Hiruretako bat ere ez da larria. Hirurak zorra dira, eta nahiago dute hemen idatzita
egon beste norbaitek aurkitu zain baino.

## Bertsio honen erregistroa

Biltegia publikoa ez denez, aldaketen erregistroa hemen doa osorik. **0.2.0**
bertsioa, 2026ko abuztuaren 31koa:

**Gehituta.** Edukiaren segurtasun-politika orriz orri, script bakoitzaren
aztarnarekin. Zure gordetako pasahitzak non dauden azaltzen duen artikulua,
hemezortzi hizkuntzetan. Zer idazten den erabakitzen duen ilara editoriala, eta
hutsik geratzen bada ezer ez argitaratzeko agintzen duena.

**Konponduta.** Egiaztatzailearen deskribapena, hamabost hizkuntzatan esaldi
erdian moztuta, horietako hirutan karaktere bat erditik hautsita. Fitxaren
izoztea idaztean. Zozketaren alborapena. Eta aurreko artikuluan falta zen argazkia.

**Aldatuta.** Egiaztatzailearen izenburua koreeraz, japonieraz eta vietnameraz.
Hedapena, orain eraikitako gunea existitzen denean abiarazten dena eta ez minutu
bat lehenago. Eta vietnamera, hindi eta arabierarako itzulpenak, argitalpen bat
oztopatzeari uzten diotenak ahulenak izaten jarraitzen badute ere.

---

*Artikulu honetako zifrak neurtuta daude, ez estimatuta: zxcvbn-ren denborak
guneak zerbitzatzen duen pakete berarekin eta hitzak eta ordezkapenak dituzten
pasahitzekin; zozketaren alborapena, 32 biteko osoko baten 4.294.967.296 balioen
gainean kalkulatuta. Egiaztatzailearen motorra
[zxcvbn](https://github.com/dropbox/zxcvbn) da, kode irekikoa.*
