Sample code for 30+ languages & platforms
Visual FoxPro

Generate TOTP using Base32 Secret (6 Digits, Time-based, 30-second period)

See more Encryption Examples

Generates a 6-digit time-based TOTP code using a base32 secret with a 30-second time period.

Chilkat Visual FoxPro Downloads

Visual FoxPro
LOCAL lnSuccess
LOCAL loCrypt
LOCAL lcSecretKey
LOCAL loSbKey
LOCAL lnNumRemoved
LOCAL lnNumDigits
LOCAL lnTimePeriod

lnSuccess = 0

* This example requires the Chilkat API to have been previously unlocked.
* See Global Unlock Sample for sample code.
* 
loCrypt = CreateObject('Chilkat.Crypt2')

* Base32 secret key:
lcSecretKey = "oebf ytfl qmzb p4xd 2ztf zyz4 hjrw 3uyo"

loSbKey = CreateObject('Chilkat.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