87

dotp - a dart package to generate and verify a one-time password, based on HOTP...

 5 years ago
source link: https://www.tuicool.com/articles/hit/EZ73Efi
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

dotp

dotp is a dart package to generate and verify one-time passwords that were used to implement 2FA and MFA authentication method in web applications and other login-required systems.

The package was implement based on RFC4226 (HOTP: An HMAC-Based One-Time Password Algorithm) and RFC6238 (TOTP: Time-Based One-Time Password Algorithm).

Feature

otpauth url

Installation

Pubspec

Add dotp as a dependency in your pubspec.yaml file.

dependencies:
  dotp: ^1.0.2

Example

Time-based OTPs

import 'package:dotp/dotp.dart';

void main() {
  TOTP totp = TOTP("J22U6B3WIWRRBTAV");
  totp.now(); /// => 432143
  
  /// verify for the current time
  totp.verify(432143); /// => true
  
  /// verify after 30s
  totp.verify(432143); /// => false
}

Counter-based OTPs

import 'package:dotp/dotp.dart';

void main() {
  HOTP hotp = HOTP("J22U6B3WIWRRBTAV");
  hotp.at(0); /// => 432143
  hotp.at(1); /// => 231434
  hotp.at(2132); /// => 242432
  
  /// verify with a counter
  hotp.verify(242432, 2132); /// => true
  hotp.verify(242432, 2133); /// => false
}

Api

TOTP(String secret)

param: secret
type: String
return: TOTP
desc: generate TOTP instance.

TOTP.now()

return: String
desc: get the one-time password with current time.

TOTP.verify(String otp, [Datetime time])

param: otp
type: String
param: time
type: Datetime
return: Boolean
desc: verify the totp code.

TOTP.urlGen(String issuer)

param: issuer
type: String
return: String
desc: generate url with TOTP instance

HOTP(String secret)

param: secret
type: String
return: HOTP
desc: generate HOTP instance.

HOTP.at(int counter)

param: counter
type: int
return: String
desc: generate one-time password with counter.

HOTP.verify(String otp, int counter)

param: otp
type: String
param: counter
type: int
return: Boolean
desc: verify the hotp code.

HOTP.urlGen(String issuer)

param: issuer
type: String
return: String
desc: generate url with HOTP instance

Release notes

See CHANGELOG.md .


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK