Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - CryptGenRandom
Forum - C/C++ - CryptGenRandom

Avatar
drewnik99 (Normal User)
Pro


Messaggi: 69
Iscritto: 28/03/2008

Segnala al moderatore
Postato alle 18:41
Domenica, 28/10/2012
Questa è una parte del mio programma:

Codice sorgente - presumibilmente C#

  1. [CODE]
  2. long long int expand(long long int part)
  3. {
  4.    HCRYPTPROV hCryptProv = NULL;
  5.    LPCWSTR UserName = L"My";
  6.    BYTE add[8] = {0};
  7.  
  8.    if(!(CryptAcquireContextW(&hCryptProv, UserName, 0, PROV_RSA_FULL, 0)))
  9.    {
  10.    CryptAcquireContextW(&hCryptProv, UserName, 0, PROV_RSA_FULL, CRYPT_NEWKEYSET);
  11.    }
  12.  
  13.    CryptGenRandom(hCryptProv, 4, add);
  14.  
  15.    part |= ((long long int)add[0] << 56) + ((long long int)add[1] << 48) + ((long long int)add[2] << 40) + ((long long int)add[3] << 32);
  16.  
  17.    CryptReleaseContext(hCryptProv, 0);
  18.  
  19.    return part;
  20. }
  21.  
  22.  
  23.  
  24. int main()
  25. {
  26.     long long int my = expand(100);   //100 numero d'esempio
  27.     printf("%lli\n", my);
  28.  
  29.     printf("%lli\n", expand(100));   //100 numero d'esempio
  30.  
  31.     fflush(NULL);
  32.     getchar();
  33.     return 0;
  34. }
  35. [/CODE]




Ci sono due problemi:
-le due chiamate alla printf producono stampe di valori differenti
-ad ogni esecuzione il programma stampa sempre gli stessi valori

Qualche suggerimento?

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5714
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 19:49
Domenica, 28/10/2012
Testo quotato

Postato originariamente da drewnik99:
-le due chiamate alla printf producono stampe di valori differenti



E mi pare ovvio

Testo quotato


-ad ogni esecuzione il programma stampa sempre gli stessi valori



Non è vero


P.S. Perché prima di aprire altre discussioni non rispondi prima alle altre a cui hai avuto risposta?


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
drewnik99 (Normal User)
Pro


Messaggi: 69
Iscritto: 28/03/2008

Segnala al moderatore
Postato alle 14:34
Mercoledì, 31/10/2012
Risolto.

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5714
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 15:14
Mercoledì, 31/10/2012
Testo quotato

Postato originariamente da drewnik99:

Risolto.



In genere, nei forum, si dice anche "come" hai risolto, altrimenti a che servirebbe un forum?


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote