Автоматизация и боты

 Помощь      Поиск      Пользователи
Сайт Кибор     Программируемый кликер Кибор     Видео обучение     Заказать бот

 Страниц (1): [1]   

> Без описания
Cahanynen
Отправлено: 07 Января, 2024 - 13:12:29
Post Id



Пользователь
Прохожий


Покинул форум
Сообщений всего: 9
Дата рег-ции: Дек. 2019  
Репутация: 0




Знаю что в обычных языках программирования есть отдельные модули, которые сделают всё за меня. Но в киборе подобного нет.

Нужно зашифровать строку по ключу с возможностью расшифровать имея этот ключ. Ключ, например, индивидуальный код. Какой-то сильно сложной шифровки не нужно, но будет использовать для пароля.

Есть идеи?
 
 Top
Zireael
Отправлено: 07 Января, 2024 - 13:59:15
Post Id



Пользователь
Эксперт


Просматривает форум
Сообщений всего: 4463
Дата рег-ции: Нояб. 2017  
Репутация: 585




https://kibor-bot.com/forum/topi...28732#1704628732
 
 Top
Kibor
Отправлено: 07 Января, 2024 - 17:05:33
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8217
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 357




Я предпочитаю когда один и тот же "текст"(данные) передаются в каждом случае отдельном по разному.
Для этого ключ должен быть динамичным. Он смешивается с данными которые надо расшифровать. Принимающая сторона знает не ключ, а как его достать из принятых данных. И ключ кстати тоже зашифрован по известному двум сторонам алгоритму.
Когда принимающая сторона достала ключ, она расшифровала все остальное.

Преимущества - постоянно одни и те же данные отправляются по разному.
Тяжело расшифровать без взлома принимающей стороны.
 
 Top
Cahanynen
Отправлено: 08 Января, 2024 - 16:04:10
Post Id



Пользователь
Прохожий


Покинул форум
Сообщений всего: 9
Дата рег-ции: Дек. 2019  
Репутация: 0




CODE:


string text="тестовый текст: для проверки; шифровки";
string pass="a2qw6";

string shifr=shifrovanie(text, pass);
messagebox(shifr);

string result=shifrovanie( shifr, pass);
messagebox(result);


function binary(string symbol)
{
int x=formatci(symbol), arr[8], z=-1;
string s="";
while (x>0){z++; arr[z]=mod(x, 2); x=x/2;}
for(int i=z; i>-1; i--)s=s+format(arr[i]);
while(size(s)<8)s="0"+s;
return s;
}

function decimal(string symbol3)
{
char c[9]; strcpy(#c[0], symbol3);
int z=0, degree=size(symbol3)-1;
for(int i=0; i<8; i++){if(c[i]=='1')z=z+pow(2, degree); degree--;}
return formatic(z);
}

function xor(int x, int y){if((x==0 && y==0) || (x==1 && y==1))return 0; return 1;}
function mod(int a, int b){int z=a/b; return a-z*b;}

function shifrovanie(string str, string key_)
{
string symbol2, ss;
char c1[9], c2[9];
int size_str=size(str), size_key=size(key_);
new char c3[size_str+1]; new char c4[size_key+1];
strcpy(#c3[0], str); strcpy(#c4[0], key_);
ss="";
for(int i=0; i<size_str; i++)
{
strcpy(#c1[0], binary(c3[i]));
for(int j=0; j<size_key; j++)
{
symbol2="";strcpy(#c2[0], binary(c4[j]));
for(int k=0; k<8; k++)
{
if(xor(formatsn(c1[k]), formatsn(c2[k]))==0)symbol2=symbol2+"0";
else symbol2=symbol2+"1";
}
strcpy(#c1[0], symbol2);
}
ss=ss+decimal(symbol2);
}
delete c3;
delete c4;
return ss;
}



Мне подходит такой вариант, но есть проблемы с сохранением в ini
Появляются символы с иероглифами
 
 Top
Zireael
Отправлено: 08 Января, 2024 - 16:15:17
Post Id



Пользователь
Эксперт


Просматривает форум
Сообщений всего: 4463
Дата рег-ции: Нояб. 2017  
Репутация: 585




 Цитата:
но есть проблемы с сохранением в ini

Конвертируйте сохраняемую строку в формат base64.
 
 Top
Cahanynen
Отправлено: 10 Января, 2024 - 02:43:09
Post Id



Пользователь
Прохожий


Покинул форум
Сообщений всего: 9
Дата рег-ции: Дек. 2019  
Репутация: 0




CODE:

string text="QWEqwe123";
string code="шифр";


string incr=incryption(text, code);
messagebox("Зашифровано: "+incr);


char BYTE[500];
strcpy(#BYTE[0], incr);
string coded=base64code (#BYTE[0], size(incr));
messagebox("Закодировано: "+coded);


char A[500];
char B[500];
strcpy(#A[0], coded);
base64decode (#A[0], size(coded), #B[0]);
string decoded=format(#B[0]);
messagebox("Раскодировано: "+decoded);


string decryp=incryption(format(#B[0]), code);
messagebox("Расшифровано: "+decryp);





function binary(string symbol)
{
int x=formatci(symbol), arr[8], z=-1;
string s="";
while (x>0){z++; arr[z]=mod(x, 2); x=x/2;}
for(int i=z; i>-1; i--)s=s+format(arr[i]);
while(size(s)<8)s="0"+s;
return s;
}

function decimal(string symbol3)
{
char c[9]; strcpy(#c[0], symbol3);
int z=0, degree=size(symbol3)-1;
for(int i=0; i<8; i++){if(c[i]=='1')z=z+pow(2, degree); degree--;}
return formatic(z);
}

function xor(int x, int y){if((x==0 && y==0) || (x==1 && y==1))return 0; return 1;}
function mod(int a, int b){int z=a/b; return a-z*b;}

function incryption(string str, string key_)
{
string symbol2, ss;
char c1[9], c2[9];
int size_str=size(str), size_key=size(key_);
new char c3[size_str+1]; new char c4[size_key+1];
strcpy(#c3[0], str); strcpy(#c4[0], key_);
ss="";
for(int i=0; i<size_str; i++)
{
strcpy(#c1[0], binary(c3[i]));
for(int j=0; j<size_key; j++)
{
symbol2="";strcpy(#c2[0], binary(c4[j]));
for(int k=0; k<8; k++)
{
if(xor(formatsn(c1[k]), formatsn(c2[k]))==0)symbol2=symbol2+"0";
else symbol2=symbol2+"1";
}
strcpy(#c1[0], symbol2);
}
ss=ss+decimal(symbol2);
}
delete c3;
delete c4;
return ss;
}


может кому-то пригодится
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 2 (гостей: 2, зарегистрированных: 0)
« Вопросы и решение проблем »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 




Powered by