Шифр Цезаря на Visual Basic 6

Рано или поздно приходится вспоминать навыки программирования приобретенные в техникуме.

Вот недавно, задали в институте написать программу, которая демонстрировала бы работу Шифра Цезаря. Язык программирования можно было выбрать любой, и я остановился на Visual Basic 6, потому как учил его в техникуме и до этого игрался и писал там простенькие программки.

Цезарь

Вот что получилось, программу написал за 2-3 часа, как мне кажется, то на скорую руку получилось даже не плохо. Если у кого-то будут дополнения, то можете писать в комментариях. А так я думаю может какому студенту пригодится.

Шифр Цезаря — это вид шифра подстановки, в котором каждый символ в тексте заменяется буквой находящейся на некоторое постоянное число позиций левее или правее него в алфавите (в моем случаи в качестве алфавита используется таблица ASCII). Например, в шифре со сдвигом 3, А была бы заменена на Г, Б станет Д, и так далее. В моей программе этот сдвиг называется кличем.
Код программы «Шифр Цезаря Visual Basic 6»

'Подключаем необходимые библиотеки, в частности, чтобы работала гиперссылка

Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

'Здесь описывается меню

Private Sub about_Click(Index As Integer)

ShellExecute Me.hwnd, "open", "http://helpcentr.org.ua/blog/133-shifr-tsezarja-na-visual-basic-6.html", vbNullString, vbNullString, 1

End Sub

'Здесь описывается меню

Private Sub aboutmi_Click(Index As Integer)

Form1.Height = 5700

End Sub

'Здесь самое интересное, при нажатии на кнопку происходит шифрование методом перестановки

Private Sub Command1_Click()

Text2.Text = ""

keyx = Text3.Text

'Здесь собственно самое важное!

For i = 1 To Len(Text1.Text)

bukva = keyx + Asc(Mid(Text1.Text, i, 1))

If bukva > 255 Then bukva = bukva - 255

Text2.Text = Text2.Text & Chr(bukva)

Next

End Sub

'Здесь тоже интересное, при нажатии на кнопку происходит дешифрование методом перестановки

Private Sub Command2_Click()

Text2.Text = ""

keyx = Text3.Text

For i = 1 To Len(Text1.Text)

bukva = Asc(Mid(Text1.Text, i, 1)) - keyx

If bukva < 1 Then bukva = bukva + 255

Text2.Text = Text2.Text & Chr(bukva)

Next

End Sub

'Ну, это так, красивости

Private Sub Command3_Click()

Form1.Height = 3480

End Sub

'Ну, это так, красивости

Private Sub Form_Load()

Form1.Height = 3480

End Sub

'Меняется цвет гиперссылки

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

Label2.ForeColor = &H800000

End Sub

'Сама гиперссылка, к стати, будет нужна тем, кто хочет создать гиперссылку в Visual Basic 6

Private Sub Label2_Click()

ShellExecute Me.hwnd, "open", "http://helpcentr.org.ua/blog/133-shifr-tsezarja-na-visual-basic-6.html", vbNullString, vbNullString, 1

End Sub

'Меняется цвет гиперссылки

Private Sub Label2_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

Label2.ForeColor = vbBlue

Label2.ToolTipText = "http://helpcentr.org.ua - Страничка разработчика"

End Sub

'Ну, это так, красивости

Private Sub sitego_Click(Index As Integer)

ShellExecute Me.hwnd, "open", "http://helpcentr.org.ua/blog/133-shifr-tsezarja-na-visual-basic-6.html", vbNullString, vbNullString, 1

End Sub

'Это тоже важно, проверка ключа, чтобы пользователь не ввел ошибочный ключ

Private Sub Text3_Change()

If Text3.Text > 255 Or Text3.Text < 0 Or (Text3.Text - Int(Text3.Text)) > 0 Then

X = MsgBox("Введите целое число в диапазоне от 0 до 255", vbCritical, "Ошибка!!!")

Text3.Text = 13

End If

End Sub

 

Я так думаю что эта программка, демонстрирующая Шифр Цезаря может, кому ни будь пригодиться для сдачи предмета Криптография в институте.

Исходный код программы Шифр Цезаря написанный на Visual Basic 6 вы можете скачать ниже, вирусов и вредоносных программ там нет, фишинга тоже нет.

Чистый альтруизм.
Программа разработана Галиус В.В.
Шифр Цезаря на Pascal

Вот еще нашел на другом сайте реализацию Шифра цезаря на Pascal, я думаю, что людям владеющим Delphi тоже подойдет этот код.
var
f1,f2,f3:text;
s:char;
{1. открываем исходный файл
2. создаем новый файл
3. считываем символы из исходного файла и записываем новый символ со смещением
в новый файл
4. открываем зашифрованный файл и расшифровываем его в новый файл    }
BEGIN
{1.}
{$I-}
assign(f1,'text1.txt');
reset(f1);
{$I+}
if ioresult<>0 then
begin
writeln('Создайте текстовый файл text1.txt и запустите программу снова!');
readln;
halt;
end;
{2.}
assign(f2,'text2.txt');
rewrite(f2);
while not eof(f1) do
begin
{3.}
read(f1,s);               {считываем один символ в s}
write(f2,chr(ord(s)+9));  {получаем код символа ord(s),
прибавляем к коду символа число 9,
записываем в файл f2 символ с кодом ord(s)+9)}
end;
close(f1);
close(f2);
writeln('Создан зашифрованный файл text2.txt');
writeln;
{4.}
reset(f2);
assign(f3,'text3.txt');
rewrite(f3);
while not eof(f2) do
begin
read(f2,s);
write(f3,chr(ord(s)-9));
end;
close(f2);
close(f3);
writeln('Создан расшифрованный файл text3.txt из зашиврованного файла text2.txt');
writeln;
readln;
END.

Last modified on Суббота, 18 февраля 2017 15:48

Leave a comment

Make sure you enter all the required information, indicated by an asterisk (*). HTML code is not allowed.