Ọrọigbaniwọle monomono Ọ̀fẹ́

Ṣe ina awọn ọrọ igbaniwọle to lagbara, laileto pẹlu gigun aṣa, awọn iru ohun kikọ, ati awọn imukuro. Ko si awọn opin, ko si awọn iwọle.

Ó ń ṣiṣẹ́ láìsí ìsopọ̀ ní kété tí a bá kó wọlé
16
464

Bí Ó Ṣe Ń Ṣiṣẹ́

A ń ṣẹ̀dá àwọn ọ̀rọ̀-ìgbaniwọlé pátápátá nínú aṣàwákiri rẹ pẹ̀lú crypto.getRandomValues() API Web Crypto — orísun àìròtẹ́lẹ̀ cryptographic kan náà tí àwọn aṣàwákiri ń lò fún TLS. Kò sí Math.random(), kò sí sáfà, kò sí ìbéèrè nẹ́tíwọ́ọ̀kì kankan.

  1. 1
    Ìkó ìpapọ̀ àmì papọ̀
    Dá lórí àwọn àyàn àpótí-ìṣàyẹ̀wò rẹ, irinṣẹ́ náà ń kọ́ àwọn àtòjọ ọ̀tọ̀ọ̀tọ̀ fún ńlá, kékeré, nọ́mbà, àti àwọn àmì. Bí 'yọ àwọn àmì tí ó jọra kúrò' bá tan, àwọn àmì tí ó jọra lójú bí 1, l, I, 0, àti O ni a yọ kúrò nínú àkópọ̀ kọ̀ọ̀kan kí ìpapọ̀ náà tó dá.
  2. 2
    Yíyan láìròtẹ́lẹ̀ tí a ti fi ìṣàyẹ̀wò-kíkọ̀ sí
    A ń fi ipò àmì kọ̀ọ̀kan pẹ̀lú crypto.getRandomValues() pẹ̀lú ìṣàyẹ̀wò-kíkọ̀: bí iye láìròtẹ́lẹ̀ gan-an bá bọ́ sí apá tí ó ní ìtẹ̀sí ti ìpín náà, a kọ ọ́ tí a sì tún fà á. Èyí ń yọ ìtẹ̀sí modulo kúrò tí yóò mú àwọn àmì kan lè hàn ju àwọn mìíràn lọ.
  3. 3
    Ìdánilójú ìpapọ̀ irú
    Lẹ́yìn tí a bá ti fa gbogbo ọ̀rọ̀-ìgbaniwọlé náà, irinṣẹ́ náà ń ṣàyẹ̀wò bóyá àmì kan wà ó kéré tán láti inú irú kọ̀ọ̀kan tí a yàn. Bí kò bá sí, ó ń tún fa gbogbo ọ̀rọ̀-ìgbaniwọlé náà tí ó sì ń tún ṣàyẹ̀wò — títí dé ìgbà 100 — dípò kí ó pààrọ̀ àwọn àmì sí àwọn ipò tí a dá kalẹ̀, èyí tí yóò yí ìpín náà padà.
  4. 4
    Ìṣírò entropy àti àkókò-fífọ́
    Irinṣẹ́ náà ń ṣírò entropy gẹ́gẹ́ bí gígùn × log2(ìwọ̀n ìpapọ̀) ó sì ń ṣírò àkókò-fífọ́ ní lílo ìṣírò àyè-log lòdì sí ìpìlẹ̀ GPU bílíọ̀nù 100 ìdábàá-fún-ìṣẹ́jú-aaya (tí ó bá àwọn hash tí ó yára bí i MD5 mu; àwọn ọ̀rọ̀-ìgbaniwọlé tí bcrypt/Argon2 dáàbò bò yóò gba àkókò pípẹ́ jù). Àwọn nọ́mbà méjèèjì ń yí padà lẹ́sẹ̀kẹsẹ̀ bí o bá yí ìtò padà.

Olùmújáde náà ń ṣiṣẹ́ pátápátá nínú aṣàwákiri rẹ — a kì í fi àwọn ọ̀rọ̀-ìgbaniwọlé, ìtò, tàbí dátà lílò ránṣẹ́ sí sáfà kankan láé.

Àwọn Irinṣẹ Tó Jọra

Àwọn Ìbéèrè Tí A Máa Ń Béèrè