Приветствую Вас Гость | RSS

Меню сайта

Реклама

Категории раздела
ADO [17]
ASCII и CSV [12]
Access [20]
Alias [24]
BDE [37]
BLOB поля [19]
Clipper [2]
DB2 [2]
DBASE и DBF [26]
Fox Pro [1]
Interbase [21]
MSSQL [0]
ODBC [10]
Oracle [0]
Paradox [0]
SQL [29]
Sybase [1]
База данных [0]
Закладки [2]
Записи [0]
Индексы [10]
Компоненты и Базы данных [0]
Модуль данных [3]
Отчеты [2]
Ошибки БД [17]
Поиск [16]
Поля [0]
Сортировка и Фильтр [6]
Таблицы [0]

Наш опрос
Есть ли у Вас свой сайт?
Всего ответов: 48

Статистика

Онлайн всего: 5
Гостей: 5
Пользователей: 0

Форма входа

Главная » Статьи » Базы данных » Interbase

Шифрование текстовых полей таблицы Interbase
{ **** UBPFD *********** by delphibase.endimus.com ****
>> Шифрование текстовых полей таблицы Interbase

Простенько но шустро шифрует текстовую строку VarChar в текстовую
строку VarChar, пригодную для сохранения в текстовом поле базы Interbase.
НЕ ЗАТРАГИВАЕТ ПРОБЕЛЫ!
Метод генерации (в начале) и изменения ключа (в 2-местах!) в вашей программе
лучше изменить от исходного в сторону усложнения, но не трогать "And 127" в конце.
Для работы с Char возможно стоит добавить "Trim(S1);" в самое начало.

Зависимости: Windows, SysUtils, DB
Автор: Vemer, Vemer@List.Ru, Петрозаводск
Copyright: Vemer
Дата: 16 ноября 2003 г.
***************************************************** }


function Morf(S1: string; T: Boolean): string;
var
LS: Byte; //длина строки
KB: Byte; //ключ, байт
I: Byte; //Счетчик
B: Byte; //байт строки
W: Smallint; //буфер для ключа
S2: string; //результат
begin
LS := Length(S1);
S2 := '';
KB := LS * LS; //-------Изменить/Усложнить!And 127 не трогать!
if T = False then // Выбор между шифрованием и дешифрованием
begin
for I := 1 to LS do
begin //шифрование
B := Byte(S1[I]);
if B > 32 then
begin
W := B + KB;
if W > 255 then
W := W - 223;
B := W;
end; //If
S2 := S2 + Chr(B);
KB := (KB + (I * 2)) and 127;
//-(1) Изменить/Усложнить! And 127 не трогать!
end; //For
end
else
begin //дешифровка
for I := 1 to LS do
begin
B := Byte(S1[I]);
if B > 32 then
begin
W := B - KB;
if W < 33 then
W := W + 223;
B := W;
end; //If
S2 := S2 + Chr(B);
KB := (KB + (I * 2)) and 127;
//---(2) Сделать как в (1)! And 127 не трогать!
end; //For
end; //Else

Result := S2;
end;

Пример использования:

// В вычисляемом поле для отображения текста в нормальном виде:
TableNewName.Value := Morf(TableName.Value, True);

// Для занесения в таблицу в зашифрованном виде например из Edit:
TableName.Value := Morf(Edit.Text, False);
Категория: Interbase | Добавил: Angel (28.07.2008)
Просмотров: 461 | Рейтинг: 0.0/0
  Delphi Lab   Главная   Регистрация   Вход  
Интересная Цитата

Поиск

Магазин


Copyright MyCorp © 2025 Хостинг от uCoz