Тег: шифрование на C#

KostyeFromHelen
19. Шифрование SHA на C#
23.03.2012 07:10:11

using System.Security.Cryptography;
namespace ConsoleApplication1
{   
class Program   
{       


static void Main(string[] args)       
{           
Console.WriteLine(HashCode("Hello World"));       
}


public static string HashCode(string str)       
{           
string rethash = "";           
try           
{
System.Security.Cryptography.SHA1 hash = System.Security.Cryptography.SHA1.Create();     
System.Text.ASCIIEncoding encoder = new System.Text.ASCIIEncoding();               
byte[] combined = encoder.GetBytes(str);               
hash.ComputeHash(combined);               
rethash = Convert.ToBase64String(hash.Hash);           
}           
catch (Exception ex)           
{               
string strerr = "Error in HashCode : " + ex.Message;           
}           
return rethash;       
}    
}
}



Теги: SHA на C# | шифрование на C#

Просмотров: 4359 | Подробнее...


 
KostyeFromHelen
18. Шифр Цезаря на C#
03.03.2012 14:48:46

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

Форма выглядит так:

В ЛистБокс мы будем помещать новый алфавит, для наглядности. В текстовые поля вбивать текст и шаг. Один метод будет шифровать другой расшифровывать.

Собственно код:

 private void button1_Click(object sender, EventArgs e) 
        {
listBox1.Items.Clear();
textBox3.Text = "";
int move = 0;
string[] array = new string[] { "а", "б", "в",
"г", "д", "е", "ё", "ж",
"з", "и", "й", "к", "л", "м", "н", "о", "п", "р", "с",
"т", "у", "ф", "х",
"ц", "ч", "ш", "щ", "ъ", "ы", "ь", "э", "ю", "я" };
 try
{
 move = Convert.ToInt32(textBox1.Text);
}
catch
{
MessageBox.Show("Установите шаг шифрования!"); 
return;
}

string[] array2;
 array2 = array.Skip(move).Concat(array.Take(move)).ToArray(); 
//Данная функция 
смещает по кругу ячейки массива. Для расшифровки стоит
просто поменять move на 33-move
foreach (string element in array2)
 {
listBox1.Items.Add(element.ToString()); //добвляем
в ЛистБокс новый алфавит } string text = textBox2.Text; foreach (char bykva in text) { for (int i = 0; i < array.Length; i++) { if (bykva.ToString().ToLower() == array[i])
{ textBox3.Text += array2[i]; break; } else { if (bykva.ToString() == " " || bykva.ToString() == "." ||
bykva.ToString() == "," || bykva.ToString() == ":" ||
bykva.ToString() == ";" || bykva.ToString() == "?" ||
bykva.ToString() == "!") // эти знаки печатаются без зашифровки
                        {
                            textBox3.Text += " ";
                            break;
                        }
                    }
                }
            }
        }
Несложное шифрование, если не использовать какие-то дополнительные алгоритмы.

Теги: шифрование на C# | шифр цезаря на C#

Комментариев 4 | Просмотров: 24048 | Подробнее...


 

Программируем на C#, интересные статьи, книги, музыка; Костя Карпов.