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

Шифрование БД

07.06.2018, 18:58. Показов 1759. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет всем
Делаю диплом
Встал вопрос о безопасности данных
База данных написана в Access
Нужно, что бы база была зашифрована, но Builder мог прочесть все данные
Не знаю как это сделать
Помогите пожалуйста
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
07.06.2018, 18:58
Ответы с готовыми решениями:

Шифрование с помощью матрицы и вектора (шифрование методом аналитических преобразований)
Программисты Здравствуйте! Не могу сделать этот метод,не понимаю и все тут), хорошо бы если объясняли еще....(сам сайт готов, надо только...

Как поменять результат шифрование \ Метод шифрование RSA
Здравствуйте! Прошу помощи! В просторах интернета нашла одну статью в которой реализован метод шифрования RSA. Решила его опробовать, но...

Шифрование
ключ шифруется и дешифруется... public class NewJFrame extends javax.swing.JFrame { // encryption decryption // byte...

14
Модератор
 Аватар для D1973
9912 / 6449 / 2455
Регистрация: 21.01.2014
Сообщений: 27,383
Записей в блоге: 3
07.06.2018, 19:01
Поиск рулит
0
1 / 1 / 1
Регистрация: 29.11.2017
Сообщений: 29
07.06.2018, 20:03  [ТС]
Делаю как там, но выдает такую ошибку
Миниатюры
Шифрование БД  
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33376 / 21500 / 8236
Регистрация: 22.10.2011
Сообщений: 36,896
Записей в блоге: 11
07.06.2018, 20:09
В твоем допотопном Билдере нет UnicodeString.

И не надо переписывать весь заголовок, просто для нужного поля выбери событие OnGetText (на вкладке Events), Билдер сам создаст правильный обработчик, куда останется вписать всего одну строку...
0
1 / 1 / 1
Регистрация: 29.11.2017
Сообщений: 29
07.06.2018, 20:47  [ТС]
Сделал все как вы сказали
С тем же кодом
Сейчас проблема в том, что шифруется в базе, а в Гриде, а грид присоединен к тейбл
Миниатюры
Шифрование БД  
0
1 / 1 / 1
Регистрация: 29.11.2017
Сообщений: 29
08.06.2018, 19:39  [ТС]
шифруется не в базе, а в гриде

Добавлено через 22 часа 39 минут
volvo, Ну почти же сделал) Неужели не знаете?
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33376 / 21500 / 8236
Регистрация: 22.10.2011
Сообщений: 36,896
Записей в блоге: 11
08.06.2018, 20:18
Нет, не знаю...



Код (который "почти" работает) никак не могу разглядеть в твоем проекте. У меня работает то, что я приводил...
0
1 / 1 / 1
Регистрация: 29.11.2017
Сообщений: 29
08.06.2018, 20:23  [ТС]
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
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
 
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;
}
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::ADOTable1FamGetText(TField *Sender,
      AnsiString &Text, bool DisplayText)
{
Text = XOR_Crypt(Sender->AsString, "!");
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::ADOTable1FamSetText(TField *Sender,
      const AnsiString Text)
{
Sender->AsString = XOR_Crypt(Text, "!");
}
Добавлено через 44 секунды
Это весь код

Добавлено через 1 минуту
В итоге зашифровался столбик в ADOTable вместо столбика базы данных
0
 Аватар для Within_t
34 / 21 / 11
Регистрация: 20.10.2013
Сообщений: 577
10.06.2018, 17:17
В алгоритме шифрования есть один недостаток.
Если в строке будет присутствовать "!" знак, то при добавлении в вашу БД он откинет тест, стоящий после этого знака и сам знак тоже.
0
1 / 1 / 1
Регистрация: 29.11.2017
Сообщений: 29
11.06.2018, 16:59  [ТС]
Если бы шифрование работало, плевать на этот недостаток
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33376 / 21500 / 8236
Регистрация: 22.10.2011
Сообщений: 36,896
Записей в блоге: 11
11.06.2018, 19:02
Шифрование работает. Проблема в твоем случае скорее всего в том, что ты изначально незашифрованную базу открыл вот с этим кодом. И получилось, что у тебя в гриде отображается зашифрованный текст (то есть, текст из базы, к которому применен алгоритм шифрования). Если бы в БД изначально был шифрованный текст - все было бы с точностью до наоборот: при занесении в ячейку грида к шифрованному тексту применяется XOR, соответственно он расшифровывается. А при записи - к расшифрованному опять XOR, и зашифрованный текст уходит в БД...
0
1 / 1 / 1
Регистрация: 29.11.2017
Сообщений: 29
11.06.2018, 20:50  [ТС]
Тогда как зашифровать базу так, что бы билдер потом с моим кодом ее расшифровал
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33376 / 21500 / 8236
Регистрация: 22.10.2011
Сообщений: 36,896
Записей в блоге: 11
11.06.2018, 21:04
Убрать из OnGetText вызов XOR_Crypt:
C++
1
2
3
4
5
void __fastcall TForm1::ADOTable1FamGetText(TField *Sender,
      AnsiString &Text, bool DisplayText)
{
    Text = Sender->AsString;
}
, и внести какие-нибудь изменения в содержимое полей. Скажем, добавить и убрать пробел. Раз по OnGetText нет шифрования, то изначально НЕзашифрованный текст так же незашифрованным отобразится в гриде. А после изменения в БД уйдет уже зашифрованный. А когда во все поля будут внесены изменения - закрываешь приложение, возвращаешь в OnGetText предыдущую версию обработчика, и получаешь то, что нужно.
0
1 / 1 / 1
Регистрация: 29.11.2017
Сообщений: 29
12.06.2018, 00:05  [ТС]
Такой способ работает совсем не так как хотелось бы
Неужели нельзя никак по-другому сделать??
Например последняя строчка в столбике совсем не шифруется. Но это не проблема, так как можно справиться
Но вот главной проблемой является то, что при добавлении новой строчки для шифрования придется снова повторять действия с заменой кода, добавлением/удалением пробела, обратной заменой кода...
Нужно, что бы шифровалось автоматически и так же расшифровывалось
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33376 / 21500 / 8236
Регистрация: 22.10.2011
Сообщений: 36,896
Записей в блоге: 11
12.06.2018, 10:01
Цитата Сообщение от Sergey6 Посмотреть сообщение
Такой способ работает совсем не так как хотелось бы
Бла-бла-бла...

Смотри: положил на форму еще несколько Edit-ов (сколько там у тебя полей в таблице), и кнопку. И по нажатию кнопки:
C++
1
2
3
4
5
6
7
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    ADOTable1->Append();
    ADOTable1->FieldByName("Fam")->AsString = XOR_Crypt(Edit1->Text, "!");
    ADOTable1->FieldByName("Name")->AsString = XOR_Crypt(Edit2->Text, "!");
    ADOTable1->Post();
}
И чего будет? А вот чего:


А база-то вот такая:
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.06.2018, 10:01
Помогаю со студенческими работами здесь

Шифрование
Хочу сделать пароль в INI файле для последующего подключения в делфи. Как его зашифровать?

Шифрование
Всем привет! В общем дело такое, забыл чем шифровал файл. Помню только что это вроде была многофункциональная программка...там очистка...

Шифрование
Здравствуйте!!! Я написал программу шифрования файлов по некоей статье из Интернета. Все хорошо, но при шифровке/дешифровке программа...

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

шифрование
шифр Трисмуса – многоалфавитное с ключом усовершенствование шифра Цезаря –дожил до наших дней. Все буквы алфавита (или ...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru