Hash Functions

  • #1
What exactly are hash functions and how do you use them to create a random string? What other ways are there to create random strings.
 

Answers and Replies

  • #2
http://en.wikipedia.org/wiki/Hash_functions

One does not implement hash functions to produce a random string. Hash functions take a string as an argument and output a string of a smaller size which is a hash that represents the original string. An example of a hash function would be the famous DES.

If you wish to produce a random string and not what a hash function does, you need a random byte generator. There are many methods of random generators. A common implementation of a random generator is to take the value of the time, and do a manipulation on it. Once you have a random byte generator, you can produce the number of bytes you want to produce a random string.
 
Last edited:
  • #3
How would you get the system time in c++ and use it to create a random string?
 
  • #4
DaveC426913
Gold Member
19,153
2,663
I am not a C programmer but it seems to me you'd use the pseudo random number generator and seed it with the time:



Code:
#include <ctime>    // For time()
#include <cstdlib>  // For srand() and rand()
srand(time(0));
 
  • #5
How would you get the system time in c++ and use it to create a random string?
Here is an example of a random string generator written in C. It generates a string of random capital letters.

Code:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int
main(int argc, char *argv[])
{
        if(argc < 2){
                printf("USAGE: %s [Length of string]\n", argv[0]);
                return 0;
        }

        int length      = atoi(argv[1]);
        char *randstr   = malloc(length + 1);
        randstr[length] = '\0';

        time_t ltime = time(NULL);
        srand(ltime);

        int i;
        for(i = 0; i < length; i++)
                randstr[i] = (rand() % 26) + 65;

        printf("%s\n", randstr);
        return 0;
}
Here is an example of the output:

Code:
$ ./randstr
USAGE: ./randstr [Length of string]
$ ./randstr 20
MTZEKHHTQJGPDNHBNSTN
$ ./randstr 20
IEMBTDVFDEDMFWXEYESX
$ ./randstr 20
EMCYCCJOTCAJHCNHMQOH
$
 
Last edited:

Related Threads on Hash Functions

  • Last Post
Replies
9
Views
2K
  • Last Post
Replies
3
Views
2K
  • Last Post
Replies
2
Views
5K
Replies
15
Views
4K
Replies
19
Views
1K
  • Last Post
Replies
18
Views
4K
  • Last Post
Replies
1
Views
2K
Replies
20
Views
30K
Top