CryptGenRandom

di il
2 risposte

CryptGenRandom

Questa è una parte del mio programma:

long long int expand(long long int part)
{
   HCRYPTPROV hCryptProv = NULL;
   LPCWSTR UserName = L"My";
   BYTE add[8] = {0};

   if(!(CryptAcquireContextW(&hCryptProv, UserName, 0, PROV_RSA_FULL, 0)))
   {
   CryptAcquireContextW(&hCryptProv, UserName, 0, PROV_RSA_FULL, CRYPT_NEWKEYSET);
   }

   CryptGenRandom(hCryptProv, 4, add);

   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);

   CryptReleaseContext(hCryptProv, 0);

   return part;
}



int main()
{
    long long int my = expand(100);   //100 numero d'esempio
    printf("%lli\n", my);

    printf("%lli\n", expand(100));   //100 numero d'esempio

    fflush(NULL);
    getchar();
    return 0;
}

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?

2 Risposte

Devi accedere o registrarti per scrivere nel forum
2 risposte