random letter generator

Problem this snippet solves:

This iRule demonstrates how to generate a string of pseudo-random letters. rand() doesn't generate cryptographically secure output. If you need this, use the CRYPTO commands.

Code :

when RULE_INIT {

   # Number of random letters to generate
   set count 100

   # Create a list of the letters indexed 0 through 25
   set letters [ list a b c d e f g h i j k l m n o p q r s t u v w x y z ]

   # Initialize a variable to store the random letters in
   set random ""

   # Loop through X times where X is the number of random letters to generate
   for { set i 1 } { $i < $count } { incr i } {

      # Generate a random number between 0 and 1, using rand()
      # Multiply that by 26 to get a number representing a letter
      # Use int to trim off the decimal value

      # set rand [expr { int (rand() * 26) }]
      # append random [lindex $letters $rand]

      # Or in one command:
      append random [lindex $letters [expr { int (rand() * 26) }]]
   }

   log local0. "Random letters: $random"
}
Published Mar 18, 2015
Version 1.0

Was this article helpful?

No CommentsBe the first to comment