Ինչպես ստեղծել TOTP կամ HOTP մեկանգամյա կոդ
Իմացեք, թե ինչպես Base32 բանալուց HMAC-SHA1 ալգորիթմով ստեղծել TOTP և HOTP մեկանգամյա վավերացման ծածկագրեր 6 կամ 8 նիշ երկարությամբ:
Մեկանգամյա թվային գաղտնաբառերը (OTP) լայնորեն կիրառվում են երկփուլ վավերացման (2FA) համակարգերում: Ճիշտ կոդ ստանալու համար անհրաժեշտ է ունենալ Base32 ձևաչափով գաղտնի բանալի և ընտրել համապատասխան ռեժիմը՝ ժամանակի վրա հիմնված TOTP կամ հաշվիչի վրա հիմնված HOTP: Այս ուղեցույցում մանրամասն ներկայացված է, թե ինչպես կարգավորել պարամետրերը և արագ ստանալ անհրաժեշտ ծածկագիրը:
Ինչպես են աշխատում TOTP և HOTP ալգորիթմները
Երկու ռեժիմներն էլ հիմնված են HMAC-SHA1 ծածկագրային ալգորիթմի վրա, որը նկարագրված է RFC 4226 և RFC 6238 ստանդարտներում: TOTP ռեժիմում հաշվիչի դերը կատարում է ընթացիկ Unix ժամանակը՝ բաժանված սահմանված պարբերության վրա (լռելյայն 30 վայրկյան): Յուրաքանչյուր միջակայքի ավարտից հետո գեներացվում է նոր կոդ: HOTP ռեժիմում հաշվարկը հիմնվում է կոնկրետ թվային հաշվիչի արժեքի վրա և ժամանակից կախված չէ: Եթե ձեզ անհրաժեշտ է ստուգել հիմքում ընկած հեշավորման գործընթացը, կարող եք ուսումնասիրել նաև HMAC գեներատոր գործիքը:
Քայլ առ քայլ ուղեցույց կոդի ստեղծման համար
Գործընթացն առցանց իրականացնելու համար օգտագործեք OTP գեներատոր հարթակը և հետևեք այս քայլերին.
- Մուտքագրեք Base32 գաղտնի բանալին (Secret) համապատասխան դաշտում: Գործիքն ավտոմատ կերպով հեռացնում է եզրային բացատները և ուղղում տառերի ռեգիստրը:
- Ընտրեք ռեժիմը: Լռելյայն ընտրված է TOTP տարբերակը: Եթե ձեր համակարգը պահանջում է հաշվիչով աշխատանք, ընտրեք HOTP:
- Ընտրեք նիշերի քանակը՝ 6 կամ 8 թվանշան:
- Լրացրեք լրացուցիչ պարամետրերը. TOTP-ի դեպքում կարող եք նշել պարբերությունը վայրկյաններով (1-ից 86400, լռելյայն 30), իսկ HOTP-ի դեպքում՝ հաշվիչի ամբողջ թիվը (0-ից մինչև 18446744073709551615):
- Դիտեք արդյունքը: Համակարգը կհաշվարկի ծածկագիրը, իսկ 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 համակարգերում: