ifconfig interfacename создают, создаст виртуальный интерфейс,
В библиотеке расширений StackOverflow есть два хороших маленьких расширения для шифрования и дешифрования строки с помощью RSA. Я сам несколько раз использовал здесь тему , но на самом деле не тестировал ее, но это библиотека расширения StackOverflow, поэтому я предполагаю, что она протестирована и стабильна.
Encrypt :
public static string Encrypt(this string stringToEncrypt, string key)
{
if (string.IsNullOrEmpty(stringToEncrypt))
{
throw new ArgumentException("An empty string value cannot be encrypted.");
}
if (string.IsNullOrEmpty(key))
{
throw new ArgumentException("Cannot encrypt using an empty key. Please supply an encryption key.");
}
System.Security.Cryptography.CspParameters cspp = new System.Security.Cryptography.CspParameters();
cspp.KeyContainerName = key;
System.Security.Cryptography.RSACryptoServiceProvider rsa = new System.Security.Cryptography.RSACryptoServiceProvider(cspp);
rsa.PersistKeyInCsp = true;
byte[] bytes = rsa.Encrypt(System.Text.UTF8Encoding.UTF8.GetBytes(stringToEncrypt), true);
return BitConverter.ToString(bytes);
}
Расшифровать:
public static string Decrypt(this string stringToDecrypt, string key)
{
string result = null;
if (string.IsNullOrEmpty(stringToDecrypt))
{
throw new ArgumentException("An empty string value cannot be encrypted.");
}
if (string.IsNullOrEmpty(key))
{
throw new ArgumentException("Cannot decrypt using an empty key. Please supply a decryption key.");
}
try
{
System.Security.Cryptography.CspParameters cspp = new System.Security.Cryptography.CspParameters();
cspp.KeyContainerName = key;
System.Security.Cryptography.RSACryptoServiceProvider rsa = new System.Security.Cryptography.RSACryptoServiceProvider(cspp);
rsa.PersistKeyInCsp = true;
string[] decryptArray = stringToDecrypt.Split(new string[] { "-" }, StringSplitOptions.None);
byte[] decryptByteArray = Array.ConvertAll<string, byte>(decryptArray, (s => Convert.ToByte(byte.Parse(s, System.Globalization.NumberStyles.HexNumber))));
byte[] bytes = rsa.Decrypt(decryptByteArray, true);
result = System.Text.UTF8Encoding.UTF8.GetString(bytes);
}
finally
{
// no need for further processing
}
return result;
}
Если вы хотите сделать симметричное шифрование, то я бы подумал о блоке приложения для криптографии корпоративной библиотеки . У Дэвида Хайдена был полезный пост об этом в блоге , хотя он для Enterprise Library 2.0 (текущий - 4.1), я думаю, вы все равно будете полезны.
В .NET вы можете использовать экземпляр SymmetricAlgorithm
. Здесь, в Stack Overflow, есть вопрос, демонстрирующий, как зашифровать и расшифровать строки с помощью пароля . Другой вопрос, как вы собираетесь обрабатывать пароль, но я предполагаю, что вас это не слишком беспокоит и вы просто хотите «спрятать» какой-то текст от посторонних глаз.
Вот сообщение в блоге, использующее библиотеку криптографии, которая поставляется с .NET для симметричного шифрования / дешифрования.
Симметричный алгоритм использует тот же ключ для шифрования и дешифрования, как и вы. один ключ для запирания и отпирания двери автомобиля.
Алгоритм с открытым ключом будет использовать один ключ для шифрования, а другой - для дешифрования, поэтому я могу послать вам зашифрованный файл и знать, что только вы можете его расшифровать, так как вы сохранили свой ключ в безопасности и в секрете.
http://blog.binaryocean.com/2006/01/08/NETSymmetricEncryption.aspx