28. februar 2005 - 20:31
Der er
9 kommentarer og 1 løsning
Random password
Hej Skal lige siges at jeg er rookie, hvad angår C kode... :o) men det det drejer sig om er at jeg vil kalde en funktion fra mit main program som så skal lave et random password på feks. 6 chars. #include <stdio.h> void generate_random_password(char* source, int length) { int i; char s1[length+1]; for(i=0; i < length; i++) { s1[i] = getRandomChar(); } s1[length+1] = 0; strcpy(source, s1 ); } char getRandomChar() { //char c skal tilfældigt bleve tildelt en værdi imellem 0-9, //a-z eller A-Z //return c; } int main() { int len = 6; char newPassword[len]; printf("From main: newPassword = %s \n", newPassword); generate_random_password(newPassword, len); printf("Back in main: newPassword = %s \n", newPassword); return 0; } NB: den skal endelig ikke tildele det samme password hvergang man genstarter programmet...
Annonceindlæg fra Infor
28. februar 2005 - 20:39
#1
Prøv den her: #include <stdio.h> #include <stdlib.h> #include <string.h> #include <time.h> char *valid = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefgijklmnopqrstuvwxyz0123456789"; void genpw(char *buf, int len) { int i,validlen; validlen = strlen(valid); for(i=0;i<len;i++) { buf[i] = valid[rand() % validlen]; } buf[len] = '\0'; return; } int main() { int i; char pw[7]; srand(time(NULL)); for(i=0;i<10;i++) { genpw(pw, sizeof(pw)-1); printf("password=%s\n",pw); } return; }
28. februar 2005 - 20:46
#2
hej arne_v Kan ikke teste det lige pt. men er det standard C. det jeg tænker på er srand(time(NULL)) skal nemlig prøve at afvikle det på unix (hvis det har nogen indvirkning) :o)
28. februar 2005 - 20:52
#3
Så vidt jeg ved er det standard ANSI C. Og jeg har testet med gcc (ganske vist på windows).
28. februar 2005 - 21:29
#4
okay prøver imorgen tidlig...
01. marts 2005 - 09:02
#5
Hej Arne Du er sku den sejeste... (er der noget du ikke kan... HE HE HE) sender du lige et svar !!! kan du ikke sætte nogle kommentar, så jeg ved hvad de forskellige linjer gør.. det ville være godt.. mvh Thomas
01. marts 2005 - 09:13
#6
især disse linier buf[i] = valid[rand() % validlen]; srand(time(NULL)); hvad er forskellen på rand() og srand()
01. marts 2005 - 09:37
#7
rand() returnerer et tilfældigt tal srand(time(NULL)); initierer random generatoren så du ikke får de samme tal hver gang
01. marts 2005 - 09:37
#8
svar
01. marts 2005 - 09:44
#9
takker
01. marts 2005 - 09:47
#10
Og der er skam meget jeg ikke kan
Kurser inden for grundlæggende programmering