Classic ASP
Classic ASP
TOTP Authenticator: Duplicate Results of Online Tools
See more Encryption Examples
Duplicates the online tool for the Google 2FA Authenticator online tools atChilkat Classic ASP Downloads
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<%
' This example requires the Chilkat API to have been previously unlocked.
' See Global Unlock Sample for sample code.
'
' Note: This example was written on 7-March-2020. If the online tools have since changed, the instructions provided here may no longer be valid.
'
set crypt = Server.CreateObject("Chilkat.Crypt2")
' ---------------------------------------------------------------------------------------------
' To duplicate the results of the Authenticator Test at https://rootprojects.org/authenticator/
' do the following:
' 1) At the bottom of the screen you will see a URI such as:
'
' otpauth://totp/ACME%20Co:john@example.com?secret=HXDMVJECJJWSRB3HWIZR4IFUGFTMXBOZ&issuer=ACME%20Co&algorithm=SHA1&digits=6&period=30
'
' Use the uppercase secret. For example:
secretKey = "HXDMVJECJJWSRB3HWIZR4IFUGFTMXBOZ"
' 2) DO NOT cick the "Regenerate" button. The regenerate button will generate a new secret.
'
' 3) Run the following code to generate your 6-digit token. Compare with the token shown in the picture of the iPhone at https://rootprojects.org/authenticator/
' Note: A new token is generated every 30 seconds. You must generate within the same 30 second interval to get the same result.
Response.Write "<pre>" & Server.HTMLEncode( "Your token is: " & crypt.Totp(secretKey,"base32","0","",30,6,-1,"sha1")) & "</pre>"
' ---------------------------------------------------------------------------------------------
' To duplicate the results of the Google2FA Playground at https://pragmarx.com/playground/google2fa#/
' do the following:
' 1) Copy the 64-byte secret key:
secretKey = "OR2VQTRVHB2HO2LCGVWXQSCDK5ZHQS2D3THQ6UXO57XIE7ZHOWS6HDPQ622GU747"
' 2) Run the same code:
' (Note: The online tool generates a new result every 30 seconds. You must generate and compare within the same 30-second interval.)
Response.Write "<pre>" & Server.HTMLEncode( "Your token is: " & crypt.Totp(secretKey,"base32","0","",30,6,-1,"sha1")) & "</pre>"
%>
</body>
</html>