Ուղեցույց

Ինչպես ստեղծել TOTP կամ HOTP մեկանգամյա կոդ

Իմացեք, թե ինչպես Base32 բանալուց HMAC-SHA1 ալգորիթմով ստեղծել TOTP և HOTP մեկանգամյա վավերացման ծածկագրեր 6 կամ 8 նիշ երկարությամբ:

Գործիք OTP գեներատոր

Մեկանգամյա թվային գաղտնաբառերը (OTP) լայնորեն կիրառվում են երկփուլ վավերացման (2FA) համակարգերում: Ճիշտ կոդ ստանալու համար անհրաժեշտ է ունենալ Base32 ձևաչափով գաղտնի բանալի և ընտրել համապատասխան ռեժիմը՝ ժամանակի վրա հիմնված TOTP կամ հաշվիչի վրա հիմնված HOTP: Այս ուղեցույցում մանրամասն ներկայացված է, թե ինչպես կարգավորել պարամետրերը և արագ ստանալ անհրաժեշտ ծածկագիրը:

Ինչպես են աշխատում TOTP և HOTP ալգորիթմները

Երկու ռեժիմներն էլ հիմնված են HMAC-SHA1 ծածկագրային ալգորիթմի վրա, որը նկարագրված է RFC 4226 և RFC 6238 ստանդարտներում: TOTP ռեժիմում հաշվիչի դերը կատարում է ընթացիկ Unix ժամանակը՝ բաժանված սահմանված պարբերության վրա (լռելյայն 30 վայրկյան): Յուրաքանչյուր միջակայքի ավարտից հետո գեներացվում է նոր կոդ: HOTP ռեժիմում հաշվարկը հիմնվում է կոնկրետ թվային հաշվիչի արժեքի վրա և ժամանակից կախված չէ: Եթե ձեզ անհրաժեշտ է ստուգել հիմքում ընկած հեշավորման գործընթացը, կարող եք ուսումնասիրել նաև HMAC գեներատոր գործիքը:

Քայլ առ քայլ ուղեցույց կոդի ստեղծման համար

Գործընթացն առցանց իրականացնելու համար օգտագործեք OTP գեներատոր հարթակը և հետևեք այս քայլերին.

  1. Մուտքագրեք Base32 գաղտնի բանալին (Secret) համապատասխան դաշտում: Գործիքն ավտոմատ կերպով հեռացնում է եզրային բացատները և ուղղում տառերի ռեգիստրը:
  2. Ընտրեք ռեժիմը: Լռելյայն ընտրված է TOTP տարբերակը: Եթե ձեր համակարգը պահանջում է հաշվիչով աշխատանք, ընտրեք HOTP:
  3. Ընտրեք նիշերի քանակը՝ 6 կամ 8 թվանշան:
  4. Լրացրեք լրացուցիչ պարամետրերը. TOTP-ի դեպքում կարող եք նշել պարբերությունը վայրկյաններով (1-ից 86400, լռելյայն 30), իսկ HOTP-ի դեպքում՝ հաշվիչի ամբողջ թիվը (0-ից մինչև 18446744073709551615):
  5. Դիտեք արդյունքը: Համակարգը կհաշվարկի ծածկագիրը, իսկ TOTP ռեժիմում ցույց կտա նաև ընթացիկ կոդի գործողության մնացած վայրկյանները:

Գործնական օրինակ ութանիշ կոդի համար

Ենթադրենք, ունեք JBSWY3DPEHPK3PXP գաղտնի բանալին և ցանկանում եք ստանալ 8 նիշ ունեցող TOTP կոդ, որը թարմանում է 60 վայրկյանը մեկ:

  • Մուտքագրեք Base32 բանալին՝ JBSWY3DPEHPK3PXP
  • Ռեժիմի դաշտում ընտրեք TOTP
  • Նիշերի քանակը սահմանեք 8
  • Պարբերության դաշտում մուտքագրեք 60

Արդյունքում կստանաք 8 թվանշանից բաղկացած ընթացիկ կոդ և մնացած ժամանակի ցուցիչ (օրինակ՝ 42 վայրկյան): Երբ 60 վայրկյանի միջակայքն ավարտվի, կոդն ավտոմատ կերպով կփոխարինվի հաջորդով:

Ընդհանուր սահմանափակումներ և տեխնիկական պահանջներ

  • Բանալու ձևաչափ. Գաղտնի բանալին պետք է լինի վավեր Base32 տող: Անվավեր նիշեր պարունակող բանալիները կհանգեցնեն սխալի:
  • Նիշերի քանակ. Թույլատրվում է ընտրել միայն 6 կամ 8 նիշ երկարություն:
  • Միջակայքերի սահմաններ. TOTP պարբերությունը պետք է լինի ամբողջ թիվ 1-ից 86400 վայրկյանի սահմաններում, իսկ HOTP հաշվիչը՝ ոչ բացասական ամբողջ թիվ մինչև 18446744073709551615:
  • Ալգորիթմ. Կիրառվում է ստանդարտ HMAC-SHA1 ալգորիթմը:

Հաճախակի սխալներ և դրանց լուծումները

  • Անվավեր Base32 բանալի. Սխալը ծագում է, երբ բանալու մեջ առկա են Base32 այբուբենին չպատկանող նիշեր (օրինակ՝ 8 կամ 9 թվանշանները): Ստուգեք աղբյուրից պատճենված տեքստը:
  • Ժամանակի անհամապատասխանություն TOTP ռեժիմում. Եթե ստացված կոդը չի ընդունվում սերվերի կողմից, համոզվեք, որ ձեր սարքի ժամացույցը ճշգրիտ համաժամեցված է ցանցային ժամանակի հետ:
  • Կոտորակային արժեքներ պարամետրերում. Պարբերության և հաշվիչի դաշտերում կետով կամ ստորակետով թվեր գրելը չի թույլատրվում: Օգտագործեք միայն ամբողջ թվեր:

Հաճախ տրվող հարցեր

Կարո՞ղ եմ գաղտնիքը մուտքագրել փոքրատառերով կամ բացատներով

Այո: Գործիքն ավտոմատ հեռացնում է բոլոր բացատները և տառերը փոխակերպում մեծատառերի Base32 վերծանումից առաջ:

Ի՞նչ տարբերություն կա TOTP-ի և HOTP-ի մուտքերի միջև

TOTP ռեժիմը հաշվարկի համար օգտագործում է ընթացիկ ժամանակը և վայրկյաններով սահմանված պարբերությունը, մինչդեռ HOTP ռեժիմը պահանջում է միայն կոնկրետ հաշվիչի ամբողջ թիվ:

Կարո՞ղ եմ ստանալ ցանկացած երկարության կոդ

Ոչ: Աջակցվում են միայն ստանդարտ 6 և 8 նիշանոց ձևաչափերը, որոնք կիրառվում են 2FA համակարգերում:

Գործիք

OTP գեներատոր