Интернет-журнал 'Домашняя лаборатория', 2007 №3 - Вудворт
Шрифт:
Интервал:
Закладка:
����� ����, �� �������, ��� ����� ������� �� VBA ���������� ��������� ��� ���������� � ��������������� ������� ��������� ���������.
����� �������������� ���������� �������, �����, ��� �, ��� � ������, ���� ������ �������������� ������� ��r. �������, ����������� ��� �������, ���� ����������� �� ���� ������ ����������������. �� �������� �������� � ��������� �������:
����� �������, ��� ����� ������� ������� ���[15], ������� � ������� �� ��������� ��� ���������� 0, ���� �� ����� ���� ������ ����� ��� �������.
� ������ � ������������ �������������� � �������� �������� �� ������������� ����: ���� �� ���� ������� ��r ������ �������� 1 ����� � ���������, �� ��������� �������� 2-�� �����! � �� �� ����� � �� ��������� 2 ����� � �����������: ���������� �������� 1-�� �����. �������������, ���� ���� ������� ��r � �������� �� ����� �� ������, ����� �������� �������� �� ������ �����, �� ���� ������� ��r ��������.
� ������ �������� � ������� ���������� ����������. ����� ����� �����, ������� ������ ���� ���������� � ����� �����, �������� �������. ����� ����� � ��� ������������������ ����-������, � ����� ���� ����� ������ �����, ��� ��������� ����������� ����� ��� ������������������ ����� � ����� � ������:
11010101010110101001101010111110101010111110101010001�
������������ ��� �� ������:
10010101010011 � ������������ ������������������ ����� ���������� ������ � ������, �������� ������ ��������� ��� ���, ����� � ������� ���� ���������� ������ ��� ��������������� ��� ��� ������:
11010101010110101001101010111110101010111110101010001�
10010101010011100101010100111001010101001110010101010�
� ������ � �������: ��������� � ���� ���� ������������������� ������� ��r:
01000000000101001100111110000111111111110000111111011�
��� � ���������� ���������! ���������� ������������������ ����� ������� � �������� �������������� ������� �����. ��, � ����� ����������� �����������, �� ����� ���������� ������ ��������� �� �� ����� ������� ��r � ���� ������������������ ������ � �������, � ����� � ���������� ��������� �������� �����. ������������� �� ������������������ ����� � ������ ������� � ����� ����� �� ��������.
�������� ������, ���, ���� ������������� ����� � ����� ����������������, ��������������� ������������ ����� ��������������, ����� � ������� ��� �� ������� ��r ���������� ������, � ����� � ��� ������� ������������ ��������� ����� ������. ������� � ����������� �������� ������ ������ ������� ������������ ����� ������� �������, ��������, ���������� ������ �� ������, � � ������������� ������������, � �������� ������������� �������� � ������, � ������� ����������� � ��������� ������� ���������� ����� ��������� ������ �������. �� ������� � ������������� ������� ��r � �������� ����������, ������ ��-�� �� �����������.
������� ��r, ����������, ������������ � � VBA. ��� ������ ����, ������������ ����������� ���������� � �� �������.
Sub encrypt()
Dim �, b, �, d As String
�������� ����� ��� ���������� � ������������� �� ������������, � �������:
� = "secret text from kgb agent from newyork rezidentura�"
������: ����� ������������� �� ������������:
b = "password"
���� ����������:
� = ""
������ ����� ������ �� ����� � ������ � ��������� ������:
lentext = Len(�)
lenpass = Len(b)
���������� ����������:
For cn = 1 �� lentext
� ���� ������ ���������� ����������� ��������������. ����� ����������� ������� ��r � ������ �������� �������� ������ � ��������������� �������� ������, ��� �� "�����������" �� ��� ����� ��������� ������. Mid ����� �� �������� ������ ������, Asc � ���������� ��� � ASCII-���, Str � ���������� ����� � ������, Trim � ������� �������:
d = Trim(Str(Asc(Mid(a, cn, 1)) Xor Asc(Mid(b, ((cn � 1) Mod lenpass) + 1, 1))))
� ������ ������� ���, ����� ������ ������ ������� ����� ��� �������, ��� ����������� �� �������� ��� ASCII-����. � ����� ��� ����� ��� ����������� ��������� ������ �� �������?
Select Case Val(d)
Case 0 To 9
d = "00" + d
Case 10 To 99
d = "0" + d
End Select
� = � + d
�� ��� � ���, � ��� � � ������ �������� �� �������� ������:
Next cn
������ � ���������� � � ����������� ������, ������ �������� ����� ������������� 3 �������. �� ����� ��������, ��������, � ��������:
Selection.TypeText
Text:=c End Sub
� ������ � ��������� ����������� ������. ����� ���