_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