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
(DataFlex) Generating Repeatable Random Data for Testing/DebuggingDemonstrates how to use the Fortuna PRNG to generate random-looking but repeatable non-random data for the purpose of testing and debugging.
Use ChilkatAx-win32.pkg Procedure Test Handle hoChilkatGlob Boolean iSuccess Handle hoFortuna String sStrRandHex String sStrRandBase64 String sStrRandBase58 2 Handle hoFortuna2 String sTemp1 // All Chilkat classes can be unlocked at once at the beginning of a program // by calling UnlockBundle. It requires a Bundle unlock code. Get Create (RefClass(cComChilkatGlobal)) To hoChilkatGlob If (Not(IsComObjectCreated(hoChilkatGlob))) Begin Send CreateComObject of hoChilkatGlob End Get ComUnlockBundle Of hoChilkatGlob "Anything for 30-day trial." To iSuccess If (iSuccess <> True) Begin Get ComLastErrorText Of hoChilkatGlob To sTemp1 Showln sTemp1 Procedure_Return End Get Create (RefClass(cComChilkatPrng)) To hoFortuna If (Not(IsComObjectCreated(hoFortuna))) Begin Send CreateComObject of hoFortuna End // Normally an application would seed the PRNG with entropy from // some real random source. However, sometimes we want the same // random sequence of bytes for testing and debugging purposes. // This a reason why GetEntropy and AddEntropy are two different methods. // An application could omit the call to GetEntropy, and instead pass // non-random data to AddEntropy. For example: // Seed the PRNG with non-entropy, so we get a repeatable sequence. // Note: AddEntropy can be called any number of times. Get ComAddEntropy Of hoFortuna "01020304" "hex" To iSuccess Get ComAddEntropy Of hoFortuna "hello world" "ascii" To iSuccess // Generate some random data: Get ComGenRandom Of hoFortuna 16 "hex" To sStrRandHex Get ComGenRandom Of hoFortuna 22 "base64" To sStrRandBase64 Get ComGenRandom Of hoFortuna 32 "base58" To sStrRandBase58 Showln "hex random bytes: " sStrRandHex Showln "base64 random bytes: " sStrRandBase64 Showln "base58 random bytes: " sStrRandBase58 // Try it again with a different object to verify that the same results are obtained: Get Create (RefClass(cComChilkatPrng)) To hoFortuna2 If (Not(IsComObjectCreated(hoFortuna2))) Begin Send CreateComObject of hoFortuna2 End Get ComAddEntropy Of hoFortuna2 "01020304" "hex" To iSuccess Get ComAddEntropy Of hoFortuna2 "hello world" "ascii" To iSuccess Get ComGenRandom Of hoFortuna2 16 "hex" To sStrRandHex Get ComGenRandom Of hoFortuna2 22 "base64" To sStrRandBase64 Get ComGenRandom Of hoFortuna2 32 "base58" To sStrRandBase58 Showln "hex random bytes: " sStrRandHex Showln "base64 random bytes: " sStrRandBase64 Showln "base58 random bytes: " sStrRandBase58 End_Procedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.