Как я сделал бы некоторое простое шифрование файлов и дешифрование?

ifconfig interfacename создают, создаст виртуальный интерфейс,

5
задан Paŭlo Ebermann 22 August 2011 в 22:25
поделиться

4 ответа

В библиотеке расширений 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;
}
4
ответ дан 14 December 2019 в 13:41
поделиться

Если вы хотите сделать симметричное шифрование, то я бы подумал о блоке приложения для криптографии корпоративной библиотеки . У Дэвида Хайдена был полезный пост об этом в блоге , хотя он для Enterprise Library 2.0 (текущий - 4.1), я думаю, вы все равно будете полезны.

1
ответ дан 14 December 2019 в 13:41
поделиться

В .NET вы можете использовать экземпляр SymmetricAlgorithm . Здесь, в Stack Overflow, есть вопрос, демонстрирующий, как зашифровать и расшифровать строки с помощью пароля . Другой вопрос, как вы собираетесь обрабатывать пароль, но я предполагаю, что вас это не слишком беспокоит и вы просто хотите «спрятать» какой-то текст от посторонних глаз.

1
ответ дан 14 December 2019 в 13:41
поделиться

Вот сообщение в блоге, использующее библиотеку криптографии, которая поставляется с .NET для симметричного шифрования / дешифрования.

Симметричный алгоритм использует тот же ключ для шифрования и дешифрования, как и вы. один ключ для запирания и отпирания двери автомобиля.

Алгоритм с открытым ключом будет использовать один ключ для шифрования, а другой - для дешифрования, поэтому я могу послать вам зашифрованный файл и знать, что только вы можете его расшифровать, так как вы сохранили свой ключ в безопасности и в секрете.

http://blog.binaryocean.com/2006/01/08/NETSymmetricEncryption.aspx

0
ответ дан 14 December 2019 в 13:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: