elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Seguridad
| | |-+  Criptografía (Moderador: kub0x)
| | | |-+  Generacion de ID de llave publica
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Generacion de ID de llave publica  (Leído 2,429 veces)
AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.705


🏴 Libertad!!!!!


Ver Perfil WWW
Generacion de ID de llave publica
« en: 10 Abril 2016, 16:01 pm »

Buen dia.

¿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...  :rolleyes: :rolleyes: :rolleyes: :rolleyes:

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
  1. int main() {
  2. int j;
  3. unsigned char *temp;
  4. unsigned long long t;
  5. temp = md_file(GCRY_MD_SHA512,"llavePublica");
  6. j = 0;
  7. printf("ID: ");
  8. while(j < 64) {
  9. printf("%.2x",temp[j++]);
  10. }
  11. printf("\n");
  12. printf("long long :%i\n",sizeof(unsigned long long));
  13. j = 0;
  14. t = 0;
  15. while(j < 8) {
  16. memcpy(&t,temp + (j*8),8);
  17. printf("%llu\n",t);
  18. t = 0;
  19. j++;
  20. }
  21. free(temp);
  22. }
  23.  

Salida:

Código:
ID: d97a302e486bd15f55d4a2e6f7eba511042b0ee4ae118596584393e002103dd65e9d1c822963d945e17d4c24d9b7b6ad0fd54a7a03acea32bf899e22c7c0576b
long long :8
6904417661492427481
1271681919760913493
10846094720439823108
15437512702239654744
5033163088490962270
12517394357567651297
3668933977383294223
7734862846543956415


« Última modificación: 10 Abril 2016, 16:12 pm por AlbertoBSD » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Nueva generacion de antidebuggers?
Ingeniería Inversa
TaU 4 4,152 Último mensaje 15 Febrero 2005, 05:30 am
por heap
segunda generacion
Hardware
Pirat3net 2 2,451 Último mensaje 3 Marzo 2011, 18:10 pm
por Pharox
I3 2310M(2 generacion) vs I5 460 M (1 generacion) diferencias?
Hardware
FAKEz 4 12,029 Último mensaje 19 Marzo 2011, 21:18 pm
por Artikbot
Protección con llave HASP sin la llave original
Hacking
fperea 0 7,438 Último mensaje 1 Enero 2012, 21:31 pm
por fperea
PGP/GPG Public Key Database: Guarda tu llave publica aqui
Criptografía
AlbertoBSD 1 1,615 Último mensaje 9 Octubre 2023, 02:16 am
por AlbertoBSD
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines