(Unicode C++) 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.
#include <CkCrypt2W.h>
#include <CkStringBuilderW.h>
void ChilkatSample(void)
{
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
//
CkCrypt2W crypt;
// Base32 secret key:
const wchar_t *secretKey = L"oebf ytfl qmzb p4xd 2ztf zyz4 hjrw 3uyo";
CkStringBuilderW sbKey;
bool success = sbKey.Append(secretKey);
// Remove SPACE chars.
int numRemoved = sbKey.Replace(L" ",L"");
// 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.
int numDigits = 6;
// 30 second time period.
int timePeriod = 30;
wprintf(L"Your token is: %s\n",crypt.totp(sbKey.getAsString(),L"base32",L"0",L"",timePeriod,numDigits,-1,L"sha1"));
}
|