Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 06.04.2014
Сообщений: 18

Усложнить алгоритм шифрования

10.03.2016, 17:12. Показов 1188. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
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
44
45
46
 void __fastcall TForm1::Shifr(AnsiString &Str2)
{
AnsiString A="1234567890абвгд";
int i,j,p;
AnsiString Str, Str3;
Str= Str2;
Str3= "";
 
for(int i=1;i<=Str.Length();i++)
for(int j=1;j<=A.Length();j++)
{
if(Str[i]==A[j])
{
p=j;
if(j+3>A.Length())
{
p=j-A.Length();
}
p=p+3;
Str3+=A[p];
}
 
}
//Edit2->Text=Str2;
Str2=Str3;
}
///----------------------
 
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int i;
AnsiString Str;
  IBDataSet1->First();
  for(i=0;i<IBDataSet1->RecordCount;i++)
        {
        Str = IBDataSet1->FieldByName("PPASSWORD")->AsString;
        Shifr(Str);
        ShowMessage(Str);
        IBDataSet1->Edit();
        IBDataSet1->FieldByName("PPASSWORD")->AsString=Str;
        IBDataSet1->Post();
         IBDataSet1->Next();
        }
 
IBDataSet1->First();
}
Есть база с пользователями и их паролями,и мне нужно зашифровать их пароли,я использовал "метод Цезаря",и хочу усложнить шифрование.Мне надо сделать вот таким способом,если длина пароля четная то шифруется первая половина,а если длина пароля не четная то добавляется в конце любой символ и шифруется вторая половина.Сверху находится начала код и нужна мощь его доделать.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.03.2016, 17:12
Ответы с готовыми решениями:

Алгоритм шифрования
Здравствуйте, посоветуйте алгоритм шифрования, которым можно в билдере зашифровать, а на PHP расшифровать. Но чтобы en/de coding происходил...

Алгоритм шифрования KASUMI
Прошу помощи. Проблемы с DWORD. Помогите оживить програмку. #include &lt;vcl.h&gt; #pragma hdrstop #include &lt;iostream&gt; #include...

RSA – алгоритм шифрования
Всем доброго времени суток. Друзья, что то у меня не правильно работает шифрование, не пойму почему:cry: В общем вот: ...

7
place status here
 Аватар для gunslinger
3190 / 2227 / 640
Регистрация: 20.07.2013
Сообщений: 6,023
12.03.2016, 12:28
Можно еще так сделать (Кодирование и декодирование теста):
C++
1
2
3
4
5
6
7
String XOR(String in, String pass)
{
  String out = "";
  for (int x = 1; x <= in.Length(); x++)
    out += (char)(in[x] ^ pass[x%pass.Length()+1]);
  return out;
}
Пример:
C++
1
2
3
4
  String in = "Uewf44hy6", pass = "pswd", result;
  result = XOR(in, pass);
  in = XOR(result, pass);
  Button->Caption = in + "          " + result;
Миниатюры
Усложнить алгоритм шифрования  
0
Хитрая блондиночка $)
 Аватар для Hikari
1472 / 988 / 399
Регистрация: 21.12.2015
Сообщений: 3,785
12.03.2016, 12:38
Цитата Сообщение от HelpHelpMe Посмотреть сообщение
я использовал "метод Цезаря"
Рекомендую тебе хранить хеши, которые были созданы с помошью CryptoAPI.
Надежнее.
0
0 / 0 / 0
Регистрация: 06.04.2014
Сообщений: 18
12.03.2016, 15:41  [ТС]
gunslinger, String XOR(String in, String pass) жалуется на эту строчку

Добавлено через 19 минут
gunslinger, и вообщем можно поподробнее что это такое? и куда вставлять? я учусь в колледже поэтому для меня такое очень сложно
0
place status here
 Аватар для gunslinger
3190 / 2227 / 640
Регистрация: 20.07.2013
Сообщений: 6,023
13.03.2016, 01:42
Создаешь проект, первый код вставляешь, например, в свободное место cpp-файла (по аналогии с твоей функцией Shifr; объявление функции при необходимости помести в h-файл), второй код можно "повесить" на обработчик нажатия кнопки (Button1Click).
P.S.: судя по коду из первого поста, если он твой, сложностей возникнуть не должно.
А именно твое задание реализовать достаточно просто - используй логику.
P.S.S.: если что, учитель из меня плохой, объяснять доступно не очень умею.
0
0 / 0 / 0
Регистрация: 06.04.2014
Сообщений: 18
13.03.2016, 12:21  [ТС]
gunslinger, ну это и так было было понятно.Я не понимаю вот эту часть кода.Можете объяснить что здесь происходит? и что вообще из себя представляет алгоритм шифрования XOR?
C++
1
2
3
4
5
6
7
String XOR(String in, String pass)
{
  String out = "";
  for (int x = 1; x <= in.Length(); x++)
    out += (char)(in[x] ^ pass[x%pass.Length()+1]);
  return out;
}
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
13.03.2016, 13:06
Цитата Сообщение от HelpHelpMe Посмотреть сообщение
gunslinger, ну это и так было было понятно
Цитата Сообщение от HelpHelpMe Посмотреть сообщение
String XOR(String in, String pass) жалуется на эту строчку
... так кто все-таки жалуется?

Добавлено через 9 минут
А по функции... в цикле по числу символов входящей строки in обрабатывается каждый символ этой строки операцией "поразрядное исключающее ИЛИ" с символом второй строки - pass. Так посимвольно формируется строка out, которая и есть возвращаемое значение. Поскольку строки in и pass запросто могут не совпадать по длине, то применяется маска "по модулю длины pass" - pass[x%pass.Length()+1], чтобы индекс символа в строке не выходил за допустимое значение. (Только не говорите, что я объясняю еще непонятнее, чем gunslinger...).
0
place status here
 Аватар для gunslinger
3190 / 2227 / 640
Регистрация: 20.07.2013
Сообщений: 6,023
13.03.2016, 13:26
HelpHelpMe, еще можешь почитать про "исключающее или" здесь: https://ru.wikipedia.org/wiki/... BB%D1%8E_2
Если вкратце, то суть XOR (шифрования) в том, после первого применения операции на исходную строку получаем некую шифрованную строку, и если после этого тот же алгоритм XOR применить на уже зашифрованную строку, то в итоге получим исходную строку.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.03.2016, 13:26
Помогаю со студенческими работами здесь

Алгоритм шифрования AES-128
Здравствуйте программисты!!! :) Подскажите пожалуйста, или покажите какой-то пример реализации алгоритма шифрования AES-128. Слышал что...

Алгоритм шифрования методом Гронсфельда
И снова доброго времени суток, уважаемые форумчане! Подскажите, как сделать, чтобы при шифровании каждый следующий символ шифровался...

Алгоритм шифрования
Доброго времени суток. Имеется программа, которая шифрует данные собственным алгоритмом. Есть пример зашифрованных данных (вместе с...

Алгоритм симметричного шифрования ГОСТ 28147-89
Доброго времени суток, товарищи. Вот такую задачку подкинули по информационной безопасности. Собственно, никогда с этим алгоритмом не...

Алгоритм программы шифрования данных может кто написать?
#include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;stdlib.h&gt; #include &lt;string.h&gt; #include &lt;time.h&gt; #define SIZE 18 int...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru