Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. 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: 6403
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: 6403
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