/ / c # код для шифрування [closed] - c #, шифрування

c # код для шифрування [closed] - c #, шифрування

Я хочу шифрувати serail числа жорсткого диска, материнської плати тощо. Чи можете ви запропонувати деякі хороші математичні рівняння для шифрування?

Відповіді:

9 для відповіді № 1

Загальне правило з шифруванням - це,якщо ви цього раніше не робили, ви збираєтеся це робити неправильно. Якщо шифрування має важливе значення, скористайтеся іншим пакунком (у якому ви маєте джерело, бажано, щоб вони не вводили бекдор), оскільки вони будуть виправляти помилки. Перевіряти Книга Шнайєра на Крипто для деяких загальних рівнянь та реалізацій.

Але, якщо ви просто хочете використовувати шифрування, а недійсно перешкоджає його впровадженню (навіть якщо це просто копіювання коду з книги), то перевірте простір імен шифрування, про який інші згадували.


3 для відповіді № 2

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


0 для відповіді № 3

http://code.google.com/p/zscreen/source/browse/trunk/ZScreenLib/Helpers/PasswordManager.cs має методи шифрування та розшифровки рядка. Це початок :)


0 для відповіді № 4

Залежить від того, що ви хочете їх використовувати. Там було реалізовано безліч алгоритмів System.Security.Cryptography простір імен

Якщо ви хочете зашифрувати дані, відправити їх на іншу машину та дешифрувати їх там, то кращим варіантом є асиметричне шифрування, наприклад. RSA.

Якщо ви в порядку, тільки кодування даних, а потім порівняння їх, але ніколи не декодувати їх кращий вибір, це використовувати хеш, як SHA-1.

Якщо ви просто хочете маскувати рядок, ви можете явно XOR кожен символ з деякою попередньо визначеною константою, а потім декодувати, виконуючи той самий процес:

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 для відповіді № 5

Як ви вже згадуєте, C # рекомендує переглядати .NET Framework Простір назв криптографії.

Вам слід скористатися одним із запропонованих тут алгоритмів, а не намагатися реалізувати власне.

Також див. Це попереднє запитання Найкращий спосіб зашифрувати короткі рядки в .NET


0 для відповіді № 6

The BouncyCastle C # Видання також може запропонувати вам деякі цікаві функції, крім криптографії. NET.