/ / c # codice per la crittografia [chiuso] - c #, crittografia

codice c # per la crittografia [chiuso] - c #, crittografia

Voglio crittografare i numeri di serail del disco rigido, della scheda madre, ecc. Per favore, suggerisci qualche buona equazione matematica per la crittografia?

risposte:

9 per risposta № 1

Una regola empirica generale che coinvolge la crittografia è,se non l'hai già fatto, lo farai male. Se la crittografia è importante, allora usa il pacchetto di qualcun altro (che hai a disposizione, preferibilmente, in modo che non introducano backdoor), perché avranno risolto i bug. Check-out Il libro di Schneier su Crypto per alcune equazioni generali e implementazioni.

Ma se vuoi solo usare la crittografia e noscherzare davvero con l'implementazione (anche se si tratta solo di copiare il codice dal libro), quindi controllare lo spazio dei nomi di crittografia che altri hanno menzionato.


3 per risposta № 2

Spazio dei nomi System.Security.Cryptography
http://msdn.microsoft.com/en-us/library/system.security.cryptography.aspx


0 per risposta № 3

http://code.google.com/p/zscreen/source/browse/trunk/ZScreenLib/Helpers/PasswordManager.cs ha metodi per crittografare e decifrare una stringa. Questo è un inizio. :)


0 per risposta № 4

Dipende da cosa vuoi usarli per. Ci sono un sacco di algoritmi implementati in System.Security.Cryptography namespace.

Se si desidera crittografare i dati e inviarli ad altri computer e decrittografarli, la soluzione migliore è la crittografia asimmetrica, ad es. RSA.

Se stai bene solo con la codifica dei dati e poi confrontandoli, ma non decodificarli, la soluzione migliore è usare un hash, come SHA-1.

Se vuoi semplicemente mascherare la stringa, puoi chiaramente XOR ogni personaggio con una costante predefinita e poi decodificarla eseguendo lo stesso processo:

private static string key = "MySecretKey";
private static byte[] keyData = Encoding.ASCII.GetBytes(key);

public static byte[] Encrypt(byte[] source)
{
byte[] target = new byte[source.Length];

for (int i = 0; i < target.Length; i++)
target[i] = (byte)(source[i] ^ keyData[i % keyData.Length]);

return target;
}

0 per risposta № 5

Come hai detto C # ti consiglio di guardare il framework .NET Spazio dei nomi di crittografia.

Dovresti utilizzare uno degli algoritmi forniti qui piuttosto che cercare di implementare il tuo.

Vedi anche questa domanda precedente Il modo migliore per crittografare brevi stringhe in .NET


0 per risposta № 6

Il BouncyCastle C # edizione potrebbe anche offrire alcune interessanti funzionalità oltre a .NET Cryptography.