¿Cual es la mejor forma de generar un ID?
Les dejo mi metodo y si ustedes tienen otro podria ser muy didactivo explicarlo por aqui
En el proyecto en el que estoy trabajando necesita generar un ID por usuario que instale la aplicacion.
-Muiltiplataforma
-Comunicacion cifrada end-to-end (Lo que esta de moda)
En fin el programa genera un unico par de claves RSA para la criptografia asimetrica y genero llaves aleatorias para la criptografia simetrica en fin...
Genero un sha512 iterativo N cantidad de veces (mas de 4000) del archivo de la clave publica y este devuelve 64 bytes. Esta es mi ID del usuario y en teoria no deberia de repetirse nuca...
Tal como lei en el documento de whatsapp ellos hacen una conversion solo de los ultimos 30 bytes de la clave y luego pasan cada 5 bytes a un entero sin signo y a ese entero le sacan modulo 100000.
Yo por mi parte copio de 8 en 8 bytes al entero sin signo:
Código
int main() { int j; unsigned char *temp; unsigned long long t; temp = md_file(GCRY_MD_SHA512,"llavePublica"); j = 0; while(j < 64) { } j = 0; t = 0; while(j < 8) { t = 0; j++; } }
Salida:
Código:
ID: d97a302e486bd15f55d4a2e6f7eba511042b0ee4ae118596584393e002103dd65e9d1c822963d945e17d4c24d9b7b6ad0fd54a7a03acea32bf899e22c7c0576b
long long :8
6904417661492427481
1271681919760913493
10846094720439823108
15437512702239654744
5033163088490962270
12517394357567651297
3668933977383294223
7734862846543956415