(Visual FoxPro) Generate TOTP using Base32 Secret (6 Digits, Time-based, 30-second period)
Generates a 6-digit time-based TOTP code using a base32 secret with a 30-second time period.
LOCAL loCrypt
LOCAL lcSecretKey
LOCAL loSbKey
LOCAL lnSuccess
LOCAL lnNumRemoved
LOCAL lnNumDigits
LOCAL lnTimePeriod
* This example requires the Chilkat API to have been previously unlocked.
* See Global Unlock Sample for sample code.
*
loCrypt = CreateObject('Chilkat_9_5_0.Crypt2')
* Base32 secret key:
lcSecretKey = "oebf ytfl qmzb p4xd 2ztf zyz4 hjrw 3uyo"
loSbKey = CreateObject('Chilkat_9_5_0.StringBuilder')
lnSuccess = loSbKey.Append(lcSecretKey)
* Remove SPACE chars.
lnNumRemoved = loSbKey.Replace(" ","")
* Note: A new token is generated every 30 seconds. You must generate within the same 30 second interval to get the same result.
* Generate 6 digits.
lnNumDigits = 6
* 30 second time period.
lnTimePeriod = 30
? "Your token is: " + loCrypt.Totp(loSbKey.GetAsString(),"base32","0","",lnTimePeriod,lnNumDigits,-1,"sha1")
RELEASE loCrypt
RELEASE loSbKey
|