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

Зашифровка данных

08.02.2012, 17:05. Показов 1141. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.

У меня вопрос.
Если происходит загрузка данных в StringGrid1 из тектового файла (или Excel), то как лучше предварительно эти данные зашифровать? Таки образом, чтобы обычный пользователь не мог увидеть, что в них и в тоже время данные загружались корректно.

C++
1
2
 dir = ExtractFilePath(Application->ExeName);
StringGrid1->Cols[i]->LoadFromFile(dir+IntToStr(i+1)+"qwe.txt");
Извините, если глупый вопрос. Я еще учусь.
Спасибо заранее за ответы.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
08.02.2012, 17:05
Ответы с готовыми решениями:

зашифровка и расшифровка данных
Чтобы зашифровать текст, записанный с помощью русских букв и знаков препинания, его можно переписать, заменив каждую букву непосредственно...

Зашифровка
можете помочь мне сделать крутую зашифровку дынных для картинки, которая есть в моём коде #include <iostream> #include...

зашифровка и расшифровка
нужен скрипт который расшифровывал текст таким образом. каждый первый символ в тексте прибавляется на 1, тоесть буква "А"...

9
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
08.02.2012, 18:02
Если я правильно понял, то Вам лучше загрузить текст в невидимый StringList, а в таблицу выводить предварительно обработанные (шифрованные) строки. Вот небольшой пример__
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
void __fastcall TForm1::Button1Click(TObject *Sender)
{
      TStringList *tekst = new TStringList;
      unsigned char str, msk = 0x4B ;
      AnsiString St;
 
      tekst->LoadFromFile("proza.txt");
      for (int i=0;i<tekst->Count;i++,St="") {
        for (int j=0;j<tekst->Strings[i].Length();j++)
         { str = tekst->Strings[i][j+1] ^ msk; St += (char)str; }
        grid->Cells[0][i]=St;
      }
}
Здесь каждый символ преобразуется по маске (msk=0x4B) операцией XOR-"исключающее ИЛИ", и шифрованная строка помещается в таблицу. В StringList текст останется нетронутым.
1
1 / 1 / 0
Регистрация: 19.09.2011
Сообщений: 55
08.02.2012, 18:23  [ТС]
Спасибо за ответ.

Тут нужно так организовать, чтобы администратор под паролем мог изменять данные в текстовом файле. И чтоб они были читабельны для обычного человека.
В данном случае, я так поняла, то данные преобразуются по маске, и станут не читабельны.
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
08.02.2012, 18:35
Цитата Сообщение от Katrin1977 Посмотреть сообщение
Спасибо за ответ.

Тут нужно так организовать, чтобы администратор под паролем мог изменять данные в текстовом файле. И чтоб они были читабельны для обычного человека.
В данном случае, я так поняла, то данные преобразуются по маске, и станут не читабельны.
Если маска будет равна нулю в приведенном примере, то текст отобразится правильно. То-есть введение админ-пароля будет влиять на маску - только и всего. Пароль верный - маска = 0, иначе - маска = 0x4B.
1
1 / 1 / 0
Регистрация: 19.09.2011
Сообщений: 55
08.02.2012, 19:11  [ТС]
Спасибо. Насколько я понимаю, это организация уже в самой программе.
А Вы не подскажите, как мне предварительно зашифровать файлы, с которых будет считываться информация?
Просто, если в архив кинуть под паролем, то Builder их не распознает, выдает ошибку, что не находит такого файла.
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
08.02.2012, 19:25
- то-есть Вы хотите и сохранять в зашифрованном виде? Ну, тогда поставьте в программе флажок (чек-бокс), доступный лиш в режиме админа, и по его состоянию сохранение StringList в файл будет происходить с предварительной обработкой по маске.
0
1 / 1 / 0
Регистрация: 19.09.2011
Сообщений: 55
08.02.2012, 20:03  [ТС]
Цитата Сообщение от nick42 Посмотреть сообщение
- то-есть Вы хотите и сохранять в зашифрованном виде? Ну, тогда поставьте в программе флажок (чек-бокс), доступный лиш в режиме админа, и по его состоянию сохранение StringList в файл будет происходить с предварительной обработкой по маске.
Да, сохранять в зашифрованном виде нужно.
Но тут такая штука. Изменять данные можно только непосредственно в файлах. Потом человек отправляет их другому, но уже так, чтоб получатель не мог увидеть содержание файла, но при этом файлы все равно подгружались в программу (в StringGrid).

Надеюсь, я более-менее понятно изложила задачу.
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
08.02.2012, 20:44
Цитата Сообщение от Katrin1977 Посмотреть сообщение
Надеюсь, я более-менее понятно изложила задачу
- не для меня.. . Лучше бы кратко, но по фазам: Вы берёте обычный текстовый файл (или создаете с нуля), работаете с ним в своей программе как в редакторе текста, сохраняете в новый файл в зашифрованном виде... - вот как-то так, иначе не пойму (а смысл всего этого только Вам известен).
0
return (true);
 Аватар для mimicria
1977 / 1112 / 221
Регистрация: 19.04.2011
Сообщений: 2,346
09.02.2012, 12:11
Прошу прощения за вмешательство в ваш диалог, но на мой взгляд это должно выглядеть примерно так:
- Данные хранятся в файле в зашифрованном виде и расшифровываются программой для показа.
- Доступ к функциям редактирования StringGrid открывается только после ввода пароля.
- Измененные данные шифруются и записываются обратно в файл.
Таким образом без "пароля администратора" в файле данные в закрытом виде, в программе расшифрованы и показаны, но без возможности редактирования.
Так?
0
 Аватар для QVO
652 / 462 / 80
Регистрация: 26.10.2010
Сообщений: 1,263
Записей в блоге: 4
10.02.2012, 11:29
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
 
//----------------- Функция шифровки\дешифроовки ----------------------------
const AnsiString CodeString(const AnsiString &in)
{
  const int size = in.Length() + 1;
  AnsiString result = "";
 
  if (in.Trim() != "")
  {
        for (int i = 1; i < size; i++)
        {
          result += (char) (in[size - i] ^ 20);
        }
  }
  return result;
}
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button1Click(TObject *Sender)
{
// Создаем вспомогательную таблицу
        TStringList *Table = new TStringList;
// Заполняем ее данными с грида при этом шифрую функцией CodeString
        for(int i = 0 ; i < StringGrid1->RowCount ; i++)
        {
                Table->Add(CodeString(StringGrid1->Rows[i]->DelimitedText));
        }
// Сохраняем в файл
        Table->SaveToFile(ExtractFilePath(Application->ExeName)+"MyDataBase.txt");
// Освобождаем память
        delete Table;
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button2Click(TObject *Sender)
{
// Создаем вспомогательную таблицу
        TStringList *Table = new TStringList;
// Загружаем в нее данные
        Table->LoadFromFile(ExtractFilePath(Application->ExeName)+"MyDataBase.txt");
// Заполняем грид при этом расшифровываем данные с помощью функции CodeString
        for(int i = 0 ; i < StringGrid1->RowCount ; i++)
        {
                StringGrid1->Rows[i]->DelimitedText = CodeString(Table->Strings[i]);
        }
// Освобождаем память
        delete Table;
}
//---------------------------------------------------------------------------
Вложения
Тип файла: rar пример.rar (628.0 Кб, 11 просмотров)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.02.2012, 11:29
Помогаю со студенческими работами здесь

Зашифровка php
Какими средствами луче зашифровать php чтобы было тяжило или почти не возможно разшифровать. Zend - отподает так как легко ломаетца

зашифровка текста
зашифровать текст методом цезаря. алфавит-английские строчные буквы, сдвиг +3, и еще нужно ключ вводить с клавы. вот что у меня...

Зашифровка текста
Помогите сделать , есть файл с текстом на английском языке, нужно зашифровать этот текст под цифры .. помогите пожалуйста!!!

Зашифровка строки
Ввести строку из латинских букв. Ввести натуральное число. Зашифровать исходную строку, сдвигая буквы на введенное количество позиций. Но...

Зашифровка символов
Такое задание : зафиксировали натуральное число k и перестановку чисел 1,...,k . При шифровке в исходном тексте к каждой из последующих...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru