Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(PureBasic) Password_Digest = Base64 (SHA-1 ( nonce + created + SHA-1 (password) ) )Demonstrates how to compute: Password_Digest = Base64 (SHA-1 ( nonce + created + SHA-1 (password)))
IncludeFile "CkBinData.pb" IncludeFile "CkPrng.pb" IncludeFile "CkDateTime.pb" IncludeFile "CkCrypt2.pb" Procedure ChilkatExample() ; This example requires the Chilkat API to have been previously unlocked. ; See Global Unlock Sample for sample code. password.s = "secret" crypt.i = CkCrypt2::ckCreate() If crypt.i = 0 Debug "Failed to create object." ProcedureReturn EndIf CkCrypt2::setCkHashAlgorithm(crypt, "SHA-1") CkCrypt2::setCkEncodingMode(crypt, "base64") ; Generate a 16-byte random nonce prng.i = CkPrng::ckCreate() If prng.i = 0 Debug "Failed to create object." ProcedureReturn EndIf bd.i = CkBinData::ckCreate() If bd.i = 0 Debug "Failed to create object." ProcedureReturn EndIf CkPrng::ckGenRandomBd(prng,16,bd) ; Get the current date/time in a string with this format: 2010-06-08T07:26:50Z dt.i = CkDateTime::ckCreate() If dt.i = 0 Debug "Failed to create object." ProcedureReturn EndIf CkDateTime::ckSetFromCurrentSystemTime(dt) created.s = CkDateTime::ckGetAsTimestamp(dt,0) CkBinData::ckAppendString(bd,created,"utf-8") ; This example wishes to calculate a password digest like this: ; Password_Digest = Base64 ( SHA-1 ( nonce + created + SHA-1(password) ) ) ; First SHA-1 digest the password... passwordSha1.s = CkCrypt2::ckHashStringENC(crypt,password) ; Append the 20 binary bytes of the SHA1 hash to bd, which already contains the nonce and created date/time. CkBinData::ckAppendEncoded(bd,passwordSha1,"base64") passwordDigest.s = CkCrypt2::ckHashBdENC(crypt,bd) Debug "Base64 password digest = " + passwordDigest CkCrypt2::ckDispose(crypt) CkPrng::ckDispose(prng) CkBinData::ckDispose(bd) CkDateTime::ckDispose(dt) ProcedureReturn EndProcedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.