生成无法在其他PC上运行的otp代码

时间:2019-06-26 12:45:33

标签: go one-time-password

我尝试生成并验证otp代码,这是我当前的代码:

package main

import (
    "github.com/pquerna/otp/totp"

    "bufio"
    "fmt"
    "time"
    "os"
)

var SecretCode string = "X7L245V2F2HZ3AYSSZMM35QNRMFPAMLP"


func promptForPasscode() string {
    reader := bufio.NewReader(os.Stdin)
    fmt.Print("Enter Passcode: ")
    text, _ := reader.ReadString('\n')
    return text
}


//AskCode -- ast code to use if is autorizated to use this application
func AskCode() {
    fmt.Println("Validation TOTP...")
    passcode := promptForPasscode()
    valid := totp.Validate(passcode, SecretCode)
    if !valid {
        println("Invalid OTP passcode!")
        os.Exit(1)
    } else {
        println("OTP Valid")
    }
}


// SayOTP --
func SayOTP() {

    code, _ := totp.GenerateCode(SecretCode, time.Now().UTC())
    fmt.Printf("OTP Code : %s\n", code)
}


func main(){
    SayOTP()
    AskCode()
}

如果我在同一台机器上运行代码,则SayOTP生成的代码对AskCode有效。 问题是,当我在另一台机器上运行say代码时,该代码无效,我该如何解决?

0 个答案:

没有答案