Domanda

Dopo aver letto questo post per quanto riguarda l'uso di ECC per implementare l'hashing utilizzando una chiave privata, ho iniziato a cercare un'implementazione di ECDH e mi sono imbattuto in BoucyCastle.

Sfortunatamente la documentazione è minima (come in zerow!) e non sono sicuro di cosa Sto per realizzare è completamente corretto/valido.

Vogliamo semplicemente eseguire l'hashing di 4 stringhe che saranno le informazioni di registrazione degli utenti (nome, azienda, ID azienda e ID account, entrambi lunghi 12 caratteri) che calcoleranno quindi un seriale che potranno utilizzare per attivare il nostro software.

Ho generato una coppia di chiavi utilizzando PUTTYGEN.exe ma non riesco a capire come applicarla con BouncyCastle, quale classe posso utilizzare per iniziare?Ci sono esempi là fuori?

Finora ho concatenato le informazioni e calcolato un hash MD5 (utilizzando le classi .NET). Non posso utilizzare le nuove funzioni API avanzate di VISTA poiché miriamo ancora a XP: .NET 3.5.

Qualcuno ha qualche idea?

È stato utile?

Soluzione

Credo che .NET è la classe RSACryptoServiceProvider, che è un'implementazione completa RSA.

Non c'è codice di esempio per una particolare applicazione qui:

http://www.codeproject.com/KB/security/xmldsiglic.aspx

In questo esempio usano strumento sn.exe di MS per creare la chiave.

Altri suggerimenti

Finora ho concatenato le informazioni e ne ho calcolato un hash MD5 (utilizzando le classi .NET).....
Questa affermazione di per sé mi preoccupa.MD5 è seriamente craccabile, non solo teoricamente ma praticamente.Per favore, non utilizzare MD5 per l'hashing sicuro.Usa SHA-256 o SHA-512 ed ecco Perché

Inoltre il post che hai collegato non è del tutto vero: sì, gli algoritmi simmetrici utilizzano la stessa chiave per crittografare/decrittografare, ma la chiave pubblica/privata non è una bacchetta magica.

1) La chiave pubblica/privata è lenta
2) La maggior parte degli algoritmi pubblici/privati ​​crittografa semplicemente la chiave simmetrica e quindi utilizza la crittografia simmetrica per i dati perché è molto più veloce

Il punto è che un buon algoritmo di hashing non è reversibile e quindi molto difficile da decifrare, quindi va perfettamente bene per i tuoi scopi.Tuttavia, suggerirei di utilizzare un SALT, che è un numero crittograficamente casuale da aggiungere ai tuoi dati utente, quindi eseguire l'hashing di tali dati in quanto rende i tuoi dati molto più sicuri contro gli attacchi del dizionario (dove gli hacker utilizzano termini e varianti ben noti per decifrare le password)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top