-3 / 3 / 1
Регистрация: 21.03.2015
Сообщений: 133
1

Нужна простая функция шифровки и фича дешифровки XOR

11.05.2016, 18:32. Показов 2690. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
У кого есть дайте, но чтобы было очень просто сразу вставить не думая. Неохота как-то вникать в это... (НЕ ТРОЛИТЬ)

Добавлено через 12 минут
хРЕН КТО ОТВЕТИТ, ЩАС УМНИКИ НАБЕГУТ

Добавлено через 1 минуту
мне нужна тупо функция шифровки и дешифровки, умоляю

Добавлено через 14 секунд
ПОМОГИТЕ!!!!!

Добавлено через 4 минуты
Шифроватся буду string и char

Добавлено через 1 минуту
Вот нашёл функцию шифровки, но тут анси, а у меня будет шифроваться URL, вот фича:
C++
1
2
3
4
5
6
7
8
9
AnsiString XOR_Crypt(AnsiString in, AnsiString pass)
{
AnsiString out;
for (int x=1;x<in.Length()+1;x++)
        {
        out += (char)(in[x] ^ pass[x%pass.Length()+1]);
        }
return out;
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.05.2016, 18:32
Ответы с готовыми решениями:

Программа шифровки и дешифровки
Составить программу шифровки и дешифровки заданного текста по следующему правилу: «первая буква...

Программа для шифровки/дешифровки
Возможно ли написать программку, которая будет преобразовывать слова (предложения) на русском по...

Создание ключа для шифровки / дешифровки
Приветствую всех. Столкнулся с такой проблемой &quot;как создать свой ключ для (де)шифровки файла&quot;....

Составить программу шифровки и дешифровки текста
&quot;Составить программу шифровки и дешифровки текста&quot; . Больше в задании ничего не сказано ... Ну а я...

10
Заблокирован
11.05.2016, 19:41 2
Лучший ответ Сообщение было отмечено ponchic как решение

Решение

ponchic, XOR тем и прекрасен что для шифровки и расшифровки используется один и тот же алгоритм, вот пример
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <iostream>
using namespace std;
 
string XORChifer (string in, string pasw);
string XOREnCrypt(string in, string pasw);
string XORDeCrypt(string in, string pasw);
 
int main(){
    string text = "This is example";
    string pasw = "Unknownx";
    cout<<"Text    : "<<text <<endl;
    cout<<"Password: "<<pasw <<endl;
    string encrypt = XOREnCrypt(text, pasw);
    cout<<"EnCrypt : "<<encrypt <<endl;
    string decrypt= XORDeCrypt(encrypt, pasw);
    cout<<"DeCrypt : "<<decrypt<<endl;
    return 0;
}
 
string XORChifer (string in, string pasw){
    string out   = in;
    for(size_t i = 0, m = pasw.length(); i < in.length() && m; i++ )
    {
        out[i]   = out[i] ^ pasw[i % m];
    }
    return out;
}
 
string XOREnCrypt(string in, string pasw){
    return XORChifer(in, pasw);
}
 
string XORDeCrypt(string in, string pasw){
    return XORChifer(in, pasw);
}
http://codepad.org/nLPBPXiF
Text : This is example
Password: Unknownx
EnCrypt : OX0

DeCrypt : This is example
1
-3 / 3 / 1
Регистрация: 21.03.2015
Сообщений: 133
12.05.2016, 19:24  [ТС] 3
Цитата Сообщение от Unknownx Посмотреть сообщение
XOR тем и прекрасен что для шифровки и расшифровки используется один и тот же алгоритм, вот пример
Вот огромное спасибо!

так и вот у меня в файле объявил в переменных зашифрованные строки и на них ругается компилятор типо нет закрывающий скобки
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#define WINVER 0x0501
#define _WIN32_WINNT 0x0501
#define _WIN32_WINDOWS 0x0501
#define _WIN32_IE 0x0600
 
#include "StdAfx.h"
 
#include <string.h>
#include <windows.h>
#include <iostream>
#include <regex>
#include <wininet.h>
#include <fstream>
#include <iomanip>
#include <iterator>
#include <stdio.h>
#pragma comment (lib, "wininet.lib")
#include <shellapi.h>
#include <string>
#include <string>
 
 
 char URL1[256];
 
 std::string xorURL1 = "=UXAl\R]V_V7   AW";
 std::string xorURL2 = "=UXA`\S[]V7   AWgA";
 std::string xorURL3 = "==UXA`\S[]V7  AWfA";
 std::string xorURL4 = "=UXA`\S[]V7   AWaA";
 std::string xorURL5 = "=UXA`\S[]V7   AW`A";
(как только их коментю сразу всё ок)
может их как-то получше закоментировать?
0
Заблокирован
12.05.2016, 20:07 4
Ну я понял проксорить урл чтобы потом при дезасме строковые литералы были недоступны сразу, НО пароль то же хранить тоже будем, так что это ни есть защита от дезасма. По поводу
Цитата Сообщение от ponchic Посмотреть сообщение
так и вот у меня в файле объявил в переменных зашифрованные строки и на них ругается компилятор типо нет закрывающий скобки
- 1-н косой слеш должен входить двумя косыми слешами(т.е в строке должно быть удвоенное число слешей относительно нормального, это особенности при объявлении строковых литералов)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <string>
#include <iostream>
using namespace std;
 
string xorURL1 = "=UXAl\\R]V_V7   AW";
string xorURL2 = "=UXA`\\S[]V7   AWgA";
string xorURL3 = "==UXA`\\S[]V7  AWfA";
string xorURL4 = "=UXA`\\S[]V7   AWaA";
string xorURL5 = "=UXA`\\S[]V7   AW`A";
 
int main(){
    cout<<xorURL1 <<endl;
    cout<<xorURL2 <<endl;
    cout<<xorURL3 <<endl;
    cout<<xorURL4 <<endl;
    cout<<xorURL5 <<endl;
    return 0;
}
http://codepad.org/h8Dy2xrk
=UXAl\R]V_V7 AW
=UXA`\S[]V7 AWgA
==UXA`\S[]V7 AWfA
=UXA`\S[]V7 AWaA
=UXA`\S[]V7 AW`A

Не по теме:

Кликните здесь для просмотра всего текста
PS: Кстати на счёт моих слов о ксоре : XOR это очень простой шифр, даже не зная пароля можно довольно быстро сбрутфорсить пароль, вот по быстрому
Text : =UXAl\R]V_V7 AW
Password: http://
EnCrypt : Unknownf("gy97"CP!r5qkm
DeCrypt : =UXAl\R]V_V7 AW
- т.е уже видно что в твоём парое есть слово Unknown ну и так длаее

0
-3 / 3 / 1
Регистрация: 21.03.2015
Сообщений: 133
13.05.2016, 19:01  [ТС] 5
fatal error C1004: непредвиденное обнаружение конца файла
не помогло
Цитата Сообщение от Unknownx Посмотреть сообщение
- 1-н косой слеш должен входить двумя косыми слешами(т.е в строке должно быть удвоенное число слешей относительно нормального, это особенности при объявлении строковых литералов)
Добавлено через 16 минут
Цитата Сообщение от Unknownx Посмотреть сообщение
- 1-н косой слеш должен входить двумя косыми слешами(т.е в строке должно быть удвоенное число слешей относительно нормального, это особенности при объявлении строковых литералов)
Я так понял что "=UXAl\\R]V_V7 AW" почти невозможно экранировать?
ПОЖАЛУЙСТА ПОМОГИТЕ!!
0
Заблокирован
13.05.2016, 19:50 6
Цитата Сообщение от ponchic Посмотреть сообщение
fatal error C1004: непредвиденное обнаружение конца файла
- полный код покажи, уверен где-то у тебя есть что-то наподобие гайда
#ifndef MY_DEF
#define MY_DEF
а
#endif
пропущен, либо где то stdafx.h не подключил

Добавлено через 7 минут
Цитата Сообщение от ponchic Посмотреть сообщение
что "=UXAl\\R]V_V7 AW" почти невозможно экранировать?
- скажем так, имя твой ехе и простенький дизасемблер, рано или поздно выдеру всё что мне нужно.
Цитата Сообщение от ponchic Посмотреть сообщение
ПОЖАЛУЙСТА ПОМОГИТЕ!!
- что именно тебя беспокоит?Если та ошибка, то мне проект нужен(или костяк проекта), чтобы можно было в отладчике глянуть на код. На счёт экранирования УРЛа - просто не бери в голову, твой ехе вскроет уже небегинер, а это уже неплохая защита.
0
-3 / 3 / 1
Регистрация: 21.03.2015
Сообщений: 133
15.05.2016, 18:43  [ТС] 7
Цитата Сообщение от Unknownx Посмотреть сообщение
- скажем так, имя твой ехе и простенький дизасемблер, рано или поздно выдеру всё что мне нужно.
Хотябы чтоб просто в хекс редакторе не было видно - уже айс

Добавлено через 40 секунд
Цитата Сообщение от Unknownx Посмотреть сообщение
- полный код покажи, уверен где-то у тебя есть что-то наподобие гайда
#ifndef MY_DEF
#define MY_DEF
а
#endif
пропущен, либо где то stdafx.h не подключил
Недочёты не найдены.

Добавлено через 9 минут
ВОТ НАШЁЛ ШИФРАТОР ROT13 ПОМОГИТЕ СДЕЛАТЬ ШФИРАТОР И ДЕШИФРАТОР, ЭТО КАК ПОЛАГАЮ ДЕШИФРАТОР, НУЖЕН ШИФРАТОР, ПОМОГИТЕ!!!
C++
1
2
3
4
5
6
7
8
9
10
11
char *rot13(char *str)
{
    char *ret = str;
 
    for (; *str; str++)
        if (*str >= 'a' && *str <= 'z')
            *str = (*str - 'a' + 13) % 26 + 'a';
        else if (*str >= 'A' && *str <= 'Z')
            *str = (*str - 'A' + 13) % 26 + 'A';
    return ret;
}
0
Заблокирован
15.05.2016, 18:50 8
Цитата Сообщение от ponchic Посмотреть сообщение
Недочёты не найдены.
- говорю же без кода - говно дело, тут тебе только коперфильд поможет(он там сквозь стены видит ну и через дисплеи тоже)
Цитата Сообщение от ponchic Посмотреть сообщение
Хотябы чтоб просто в хекс редакторе не было видно - уже айс
- там будет виден непонятный токен, при дизасме как ты не запутывай, тот кто знает азы работы в OllyDbg всё найдёт (это уже будет небегинер, я выше писал это).
0
Заблокирован
15.05.2016, 19:17 9
ponchic, чтобы ты понял насколько нелепо смотрится обфускация кода, а именно этим ты сейчас занимаешся, я решил показать как примерно действуют "крутые дядьки"
Первым делом изготовил тестовый ехе по приведенному ниже коду
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
using namespace std;
 
char *rot13(char *str)
{
    char *ret = str;
 
    for (; *str; str++)
        if (*str >= 'a' && *str <= 'z')
            *str = (*str - 'a' + 13) % 26 + 'a';
        else if (*str >= 'A' && *str <= 'Z')
            *str = (*str - 'A' + 13) % 26 + 'A';
    return ret;
}
 
int main(){
    char test[] = "grfg";
    cout<<rot13(test)<<endl;
    system("pause");
    return 0;
}
т.е в программе буедт токен "grfg" который при дешифровке даёт "test", на втором шаге я взял и прогнал пошагово программу в OllyDbg смотри скрин, что получил. Для чего я это показал - я показал это для того чтобы ты понимал что все аргументы функций видны в дизасме, исследующему твою прогармму человеку даже не надо вникать в твои алгоритмы, т.к твоя ж программа будет приносить все результаты на блюдичке. Конечно это был простой пример, в реалньых приложениях иной раз приходится посидеть не одну ночь чтоб что то выудить, но рано или поздно любой код раскрывает свои тайны. Так что не морочь голову с алгоритмами, зашифруй чем угодно свою строку и пусть она такой и лежит, начинающий в хексе ничего сналёту не разберёт, а тот кто умеет дизасемблировать просто улыбнётся видя и не такие "защиты"
Миниатюры
Нужна простая функция шифровки и фича дешифровки XOR  
1
-3 / 3 / 1
Регистрация: 21.03.2015
Сообщений: 133
16.05.2016, 19:25  [ТС] 10
господи, почему здесь нарушение прав доступа при записи по адресу ?
C++
1
*str = (*str - 'A' + 13) % 26 + 'A';
9 строка фичи?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include "StdAfx.h"
 
#include <string.h>
 
 
char *rot13(char *str)
 {
     char *ret = str;
 
     for (; *str; str++)
         if (*str >= 'a' && *str <= 'z')
             *str = (*str - 'a' + 13) % 26 + 'a';
         else if (*str >= 'A' && *str <= 'Z')
             *str = (*str - 'A' + 13) % 26 + 'A';
     return ret;
 }
 
 char* sUsers[] = { rot13("HfreAnzr"), //threat expert (UserName)
     rot13("hfre"), //sandbox (user)
     rot13("sandbox"), rot13("honey"), rot13("vmware"), rot13("currentuser"), rot13("nepenthes"), rot13("andy") //vmware & norman 
 };
0
Заблокирован
16.05.2016, 21:44 11
ponchic, там дело в том что у тебя аргументы твоей функции по сути статические токены, "тронуть которые ну никак не получится", заюзай вектор там будет динамическая память в которой "дозволено шариться"
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#include <vector>
#include <cstring>
#include <iostream>
using namespace std;
 
 
char *rot13(const char *str)
 {
     char *ptr= const_cast< char *>(str);
 
     if ( ptr != 0 )
     {
         for( ; *ptr; ptr++)
         {
             if (*ptr>= 'a' && *ptr <= 'z')
                 *ptr = 'a' + (*ptr - 'a' + 13) % 26;
             else 
             if (*ptr>= 'A' && *ptr <= 'Z')
                 *ptr = 'A' + (*ptr - 'A' + 13) % 26;
         }
     }
     return const_cast< char *>(str);
 }
 
 
 
int main(){
    vector< string >sUsers; 
    sUsers.push_back("HfreAnzr"); //threat expert (UserName)
    sUsers.push_back("hfre");     //sandbox (user)
    sUsers.push_back("sandbox"); 
    sUsers.push_back("honey"); 
    sUsers.push_back("vmware");
    sUsers.push_back("currentuser"); 
    sUsers.push_back("nepenthes"); 
    sUsers.push_back("andy"); //vmware & norman 
    for( size_t i = 0; i < sUsers.size(); i++ )
    {
        cout<<sUsers[i].data()<<" ";
        cout<<rot13(sUsers[i].data())<<endl;
    }
    return 0;
}
http://codepad.org/an1OaNNO
HfreAnzr UserName
hfre user
sandbox fnaqobk
honey ubarl
vmware izjner
currentuser pheeraghfre
nepenthes arcragurf
andy naql
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.05.2016, 21:44
Помогаю со студенческими работами здесь

Разработать программу шифровки-дешифровки текста
Помогите, пожалуйста, написать это на шарпе: 1)Разработать программу шифровки-дешифровки текста...

Поправьте, пожалуйста, код шифровки-дешифровки файлов
Здравствуйте, поправьте немного программку. Создал приложение чтобы шифровать и расшифровывать...

Создать программу шифровки/дешифровки (шифрование перестановкой)
создать программу шифровки дешефровки вот задание открытый текст...

Реализовать функции шифровки и дешифровки методом перестановки битов
Здравствуйте, помогите пожалуйста с кодом программы: Даны текстовые файлы (ASCII файл, который...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru