Gumawa ng Secret Key

[ ANG SECRET KEY ]
Ginagawa…
Ginawa sa browser mo gamit ang crypto.getRandomValues, the operating system’s cryptographic random source. Nothing is sent anywhere and nothing is stored — close this page and the key is gone. Save it before you navigate away.
[ ANO ITO ]

Sa bits sinusukat ang lakas, at hindi sinasabi ng bilang ng karakter kung ilan ang mayroon. Iyon ang isang bagay na nilikha ng pahinang ito para linawin.

Humingi ng "32 karakter" at ang makukuha mo ay lubos na nakadepende sa format. Sa hexadecimal, 128 bits ito, dahil isang byte ang dala ng dalawang karakter. Sa base64, 192, dahil tatlong byte ang dala ng apat na karakter. Mula sa alpabetong may 56 karakter, mga 185. Pareho ang haba, at ang pinakamahina ay bahagya lamang mahigit sa kalahati ng pinakamalakas. Kaya ang bilang ng bits ang numerong nakalimbag nang malaki, at ang haba ay detalyeng nasa ilalim nito.

Ang UUID v4 ay 122 bits, hindi 128. Apat na bits ang nakapako sa bersiyon at dalawa sa variant, na siya mismong nagpapakilala sa UUID bilang UUID. Magandang palitan iyon para sa isang identifier at masama para sa signing key, at maraming software ang tumatrato sa dalawa na parang magkapalit.

Ang lahat dito ay galing sa crypto.getRandomValues, ang cryptographic na pinagmumulan ng random ng operating system mo. Walang gumagamit ng Math.random, na ang panloob na kalagayan ay mababawi mula sa iilang output — mainam na mainam sa pagsasalansan ng playlist, hindi puwede sa isang susi.

[ MGA TANONG ]

Gaano kahaba dapat ang isang secret key?

Magtanong sa bits sa halip na karakter. Ang 128 bits ang karaniwang pinakamababa para sa anumang matagalan at ang 256 bits ang karaniwang pili para sa signing key — 32 o 64 na hexadecimal na karakter iyon, o 22 at 43 sa base64. Walang sinasabi ang bilang ng karakter mag-isa, kaya ang bilang ng bits ang malaking numero sa pahinang ito.

Bakit magkaiba ang lakas ng 32 karakter sa iba-ibang format?

Dahil magkaiba ang dami ng impormasyong dala ng isang karakter sa bawat format. Dalawang karakter ang ginagamit ng hexadecimal sa bawat byte, kaya 4 bits kada karakter. Anim na bits ang isinisiksik ng Base64 sa bawat isa. Ang alphanumeric na alphabet na may 56 karakter ay may mga 5.81. Kaya ang 32 hexadecimal na karakter ay 128 bits at ang 32 base64 na karakter ay 192 — parehong haba at kalahating dagdag ang lakas.

Sapat na ba ang UUID bilang secret key?

Karaniwang hindi. Ang UUID v4 ay 128 bits ang haba pero 122 lamang ang random — apat na bits ang nakapirmi sa bersyon at dalawa sa variant — at maraming software ang tumatrato rito na parang buong 128. Mahusay itong pantukoy: natatangi, sapat na maayos ayusin, madaling makilala. Para sa bagay na naglalagda ng token o nagpoprotekta ng datos sa loob ng mga taon, gumawa ng 32 random na bytes sa halip.

Aling format ang dapat kong gamitin?

Hexadecimal kung babasahin ito ng tao o ipa-paste sa config file — labing-anim na karakter lang ang ginagamit nito at hindi nasisira kapag muling tinipa. URL-safe base64 kung papasok ito sa URL, pangalan ng file o environment variable, dahil ang karaniwang base64 ay may plus, slash at padding, na pawang nakakaperwisyo sa mga lugar na iyon. UUID kung pantukoy ang gusto mo at hindi lihim.

Sapat ba ang pagka-random nito?

Ginagamit nito ang cryptographic random source ng browser mo, ang parehong ginagamit sa TLS keys, sa pamamagitan ng crypto.getRandomValues. Hindi ito kailanman gumagamit ng Math.random, isang mabilis na di-cryptographic na generator na ang panloob na kalagayan ay makukuha mula sa iilang labas — maayos sa pagshuffle ng listahan at hindi katanggap-tanggap para sa key.

Nakikita o iniimbak ba ninyo ang key?

Hindi. Ginagawa ito sa browser mo at hindi kailanman ipinapadala. Walang isinusulat sa mga server namin at walang itinatago kapag isinara mo ang pahina, kaya i-save ito kung saan bago ka umalis — hindi namin ito maibabalik para sa iyo.

[ ANG KOMPUTASYON ]
Bits kada karakter, ayon sa format
Hexadecimal16 karakter4.00
Alphanumeric56 karakter, inalis ang nakakalito5.81
Base6464 karakter6.00

Paramihin sa haba para makuha ang lakas. Ito lamang ang sumang mahalaga sa pahinang ito.

[ TATLUMPU'T DALAWANG KARAKTER, TATLONG LAKAS ]
32 hexadecimal na karakter128 bits
32 alphanumeric na karakter185 bits
32 base64 na karakter192 bits

Iisang tagubilin, sinunod sa tatlong paraan, na nagbibigay ng limampung porsyentong agwat sa lakas. Maling tanong ang "ilang karakter".

[ SUSUNOD ]
42Gumawa ng PasswordPara ita-type ng tao, hindi hahawakan ng makina
46Gumawa ng JWTKung para saan ang ganitong signing key
44Base64 Encoder / DecoderAng encoding, sa dalawang direksiyon
41Gumawa ng QR CodeGinawa rin nang buo sa browser
[ MAHALAGA ]

Ginawa sa browser mo at hindi kailanman ipinapadala o iniimbak. Walang anuman ditong maibabalik kapag naisara na ang pahina, at kasing-ligtas lamang ang isang susi ng susunod mong paglalagyan nito. Walang ipinapadala sa mga server namin ang tina-type mo rito — sa browser mo tumatakbo nang buo ang pagkuwenta.