Что нового

_RSA_crypt - Шифрование по алгоритму RSA

AZJIO

Меценат
Меценат
Сообщения
2,879
Репутация
1,194
MnM [?]
если просто поставить флажки то для assign и eval в обфусцированном скрипте не будет существовать переменных
Обычно из обработки исключается вся функция, а имя функции ставится в игнорирование обфускации. Конечно же такая функция не должна использовать глобальных переменных иначе и они должны быть тоже игнорированы.

Проверил ещё раз, имя функции внутри флагов исключения игнорируется автоматически по всему скрипту. Кстати, Assign должен быть с флагом 1, чтобы создавать принудительно в локальной области видимости.

Код:
Func _RSA_Generate_Prime($i_Len = -1)
	Local $i_Prime, $i_Max, $a_End[4] = [1, 3, 7, 9]

	$i_Len = Int($i_Len)
	If $i_Len = -1 Or $i_Len = Default Or Not $i_Len Then $i_Len = Random(2, 8, 1)
	If $i_Len < 2 Then $i_Len = 2
	If $i_Len > 12 Then $i_Len = 12
	For $i = 1 To $i_Len
		$i_Max &= 9
	Next


Напрашивается оптимизация

Код:
Select
	Case $i_Len = -1 Or $i_Len = Default Or Not $i_Len
		$i_Len = Random(2, 8, 1)
	Case $i_Len < 2
		$i_Len = 2
	Case $i_Len > 12
		$i_Len = 12
EndSelect


Код:
Local $i_Max
$i_Len = 9
$i_Max = 10 ^ $i_Len - 1
MsgBox(0, 'Сообщение', $i_Max)
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Хотя я когда воссоздавал RSA алгоритм, подошел совершенно с другой стороны, и мне совершенно непонятна и даже с какой-то стороны кажется банальной реализация этого алгоритма в том виде в котором он тут представлен, тем не менее при необходимости создания ключей достаточной длинны, например 2048 бит, на автоите, у вас могут возникнуть определенные сложности.
 

MnM

Post-Hardcore
Сообщения
679
Репутация
90
Есть предложение по оптимизации в функции _RSA_DeCrypt()
Код:
If IsBinary($v_EnCrypt) Then $v_EnCrypt = BinaryToString($v_EnCrypt)

Если например зашифрованные бинарные данные брать из файла, то данные уже не будут бинарными, они будут строковыми и по этому лучше будет если условие изменить на проверку наличия в строке первых 2-ух знаков являющиеся постоянными для бинарного типа - "0x"
Код:
If StringLeft($v_EnCrypt,2)=="0x" Then $v_EnCrypt = BinaryToString($v_EnCrypt)
 

C2H5OH

AutoIT Гуру
Сообщения
1,473
Репутация
333
MnM,
хотите пооптимизировать, - займитесь операцией деления.
Поштудируйте Кнута, найдите более эффективные алгоритмы, перепишите операцию деления...
Вобщем есть куда силы приложить.
:reading_book: :Typing:
 

s0me0ne

Новичок
Сообщения
19
Репутация
2
Шифрование НЕ криптостойкое. Дабы оно стало криптостойким рекомендую использовать сеть фейселя.
 
Верх