Функция _StringEncrypt

 ↑  ←  Описание функции


_StringEncrypt

Шифрует и расшифровывает текст с использованием RC4.

#include <String.au3>
_StringEncrypt($i_Encrypt, $s_EncryptText, $s_EncryptPassword [, $i_EncryptLevel = 1])

Параметры

$i_Encrypt 1 - шифрует, 0 - расшифровывает.
$s_EncryptText Текст для шифрования / расшифрования.
$s_EncryptPassword Пароль для шифрования / расшифрования.
$i_EncryptLevel [необязательный] Уровень для шифрования / расшифрования. По умолчанию = 1

Возвращаемое значение

Успех:Возвращает зашифрованный или расшифрованный текст.
Ошибка:Возвращает пустую строку и @error = 1

Примечания

ВНИМАНИЕ: Эта функция имеет предел времени, если уровень шифрования или шифруемая строка слишком велики!

Пример

#include <GUIConstantsEx.au3>
#include <String.au3>
#include <EditConstants.au3>

_Main()

Func _Main()
    Local $WinMain, $EditText, $InputPass, $InputLevel, $EncryptButton, $DecryptButton, $string
    ; GUI and String stuff
    $WinMain = GUICreate('Утилита шифрования', 400, 400) ; Создаёт окно
    $EditText = GUICtrlCreateEdit('', 5, 5, 380, 350) ; Создаёт окно редактирования
    ; Создаёт поле ввода пароля с  выравниванием по центру и скрытым
    $InputPass = GUICtrlCreateInput('', 5, 360, 100, 20, $ES_CENTER + $ES_PASSWORD)
    ; Две строки определяют уровень шифрования с элементами Up|Down
    $InputLevel = GUICtrlCreateInput(1, 110, 360, 50, 20, $ES_CENTER + $ES_NUMBER)
    GUICtrlSetLimit(GUICtrlCreateUpdown($InputLevel), 10, 1)
    $EncryptButton = GUICtrlCreateButton('Шифрование', 170, 360, 105, 35) ; кнопка для шифрования
    $DecryptButton = GUICtrlCreateButton('Расшифрование', 285, 360, 105, 35) ; кнопка для расшифрования
    ; Обычный текст, поясняющий назначение элементов интерфейса
    GUICtrlCreateLabel('Пароль', 5, 385)
    GUICtrlCreateLabel('Уровень', 110, 385)
    GUISetState() ; Показывает окно

    While 1
        Switch GUIGetMsg()
            Case $GUI_EVENT_CLOSE
                ExitLoop
            Case $EncryptButton
                GUISetState(@SW_DISABLE, $WinMain) ; Делает окно недоступным на время обработки
                $string = GUICtrlRead($EditText) ; Извлекает текст из окна редактирования
                GUICtrlSetData($EditText, 'Пожалуйста подождите, пока текст обрабатывается.') ; дружелюбное сообщение
                GUICtrlSetData($EditText, _StringEncrypt(1, $string, GUICtrlRead($InputPass), GUICtrlRead($InputLevel)))
                ; Вызывает шифрование. Устанавливает данные в окно редактирования с зашифрованной строкой
                ; Параметры шифрования начинаются с 1/0 определяющее шифровать / расшифровать
                ; Затем данные, которые были прочитаны в переменную из окна редактирования
                ; Далее читает поле пароля и поле уровня шифрования
                GUISetState(@SW_ENABLE, $WinMain) ; Делает окно доступным
            Case $DecryptButton
                GUISetState(@SW_DISABLE, $WinMain) ; Делает окно недоступным на время обработки
                $string = GUICtrlRead($EditText) ; Извлекает текст из окна редактирования
                GUICtrlSetData($EditText, 'Пожалуйста подождите, пока текст обрабатывается.') ; дружелюбное сообщение
                GUICtrlSetData($EditText, _StringEncrypt(0, $string, GUICtrlRead($InputPass), GUICtrlRead($InputLevel)))
                ; Вызывает расшифрование. Устанавливает данные в окно редактирования с расшифрованной строкой
                ; Параметры шифрования начинаются с 1/0 определяющее шифровать / расшифровать
                ; Затем данные, которые были прочитаны в переменную из окна редактирования
                ; Далее читает поле пароля и поле уровня шифрования
                GUISetState(@SW_ENABLE, $WinMain) ; Делает окно доступным
        EndSwitch
    WEnd ; Продолжить цикл пока окно не будет закрыто
    Exit
EndFunc   ;==>_Main