Алгоритм шифрования [Решено]

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Алгоритм шифрования [Решено]

Сообщение novo » 27.09.2011 21:23:46

Нужен простенький алгоритм шифрования(дешифрования) текста с использованием пароля.

Нашел полно вариантов для Delphi, но в Лазаре не работают.

Заранее спасибо!
Последний раз редактировалось novo 02.10.2011 23:17:14, всего редактировалось 1 раз.
novo
новенький
 
Сообщения: 43
Зарегистрирован: 31.07.2011 21:35:10

Re: Алгоритм шифрования

Сообщение Mr.Smart » 27.09.2011 21:31:42

Допустим, модуль из FCL blowfish
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: Алгоритм шифрования

Сообщение Vadim » 28.09.2011 04:27:13

novo
Или самый простой метод - с помощью операции XOR. ;)
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Алгоритм шифрования

Сообщение novo » 30.09.2011 20:22:37

Использовал такие функции
Код: Выделить всё
function SimpleEncrypt(Text: string;Val:integer):string;
var
i: integer; //Счетчик
Word: char; //Шифрованная буква
Begin
for i := 1 to length(Text) do
begin
Word := chr((ord(Text[i]) - Val));
Result := Result + Word;
end;
End;

function SimpleDecrypt(Text: string;Val:integer):string;
var
i: integer; //Счетчик
Word: char; //Шифрованная буква
Begin
for i := 1 to length(Text) do
begin
Word := chr((ord(Text[i]) + Val));
Result := Result + Word;
end;
End;     
novo
новенький
 
Сообщения: 43
Зарегистрирован: 31.07.2011 21:35:10

Re: Алгоритм шифрования

Сообщение Mr.Smart » 30.09.2011 20:34:03

novo гениально :lol:
А если ключ будет равен 250?
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: Алгоритм шифрования

Сообщение Brainenjii » 30.09.2011 21:06:23

Аватара пользователя
Brainenjii
энтузиаст
 
Сообщения: 1351
Зарегистрирован: 10.05.2007 00:04:46

Re: Алгоритм шифрования

Сообщение Mr.Smart » 30.09.2011 22:01:33

Brainenjii, а смысл? Если всё необходимое уже есть в LCL.
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: Алгоритм шифрования

Сообщение novo » 30.09.2011 22:07:41

Mr.Smart писал(а):novo гениально :lol:
А если ключ будет равен 250?

не будет
novo
новенький
 
Сообщения: 43
Зарегистрирован: 31.07.2011 21:35:10

Re: Алгоритм шифрования

Сообщение Mr.Smart » 30.09.2011 22:36:06

novo писал(а):не будет

Тогда ограничение ключа 1..32.

Добавлено спустя 15 минут 10 секунд:
Тогда уж лучше так:
Код: Выделить всё
function EncodeDecodeStr(const aStr: String; const aKey: String): String;
var
j, i: Integer;
begin
  if (aKey='') or (aStr='') then
   Result:=aStr
  else
   begin
    i:=1;
    SetLength(Result,Length(aStr));
    for j:=1 to Length(aStr) do
     begin
      if i>Length(aKey) then
       i:=1;
      Result[j]:=Char(Byte(aStr[j]) xor Byte(aKey[i]));
      inc(i);
     end;
   end;
end;


Функция как кодирует по ключу, так и декодирует. Думаю сами разберётесь :wink:
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: Алгоритм шифрования

Сообщение eastorwest » 01.10.2011 13:22:39

По поводу XOR...
Недавно заметил в модуле RTL.strutils функции
Код: Выделить всё
// Encode a string by XOR-ing its characters using characters of a given key, representing the result as hex values.
function XorEncode(  const Key: String;  const Source: String ):String;
//Decode a string encoded with XorEncode
function XorDecode(  const Key: String;  const Source: String):String;
// Encode a string by XOR-ing its characters using characters of a given key.
function XorString(  const Key: ShortString;  const Src: ShortString):ShortString;
eastorwest
новенький
 
Сообщения: 57
Зарегистрирован: 23.07.2009 20:21:46
Откуда: Н-ск

Re: Алгоритм шифрования

Сообщение novo » 01.10.2011 15:57:27

Спасибо всем!!! :wink:

Отличный форум!
novo
новенький
 
Сообщения: 43
Зарегистрирован: 31.07.2011 21:35:10

Re: Алгоритм шифрования

Сообщение poiuyt555 » 28.11.2012 12:23:13

Mr.Smart писал(а):Допустим, модуль из FCL blowfish

А не подскажете как при помощи blowfish зашифровать строку и поместить ее в файл, а затем достать и расшифровать?
Просто, если в рамках работы программы зашифровать строку и расшифровать - то все работает, но если зашифрованную строку записать в файл (строка около 1000 символов), затем из фала ее достать то выдается ошибка при расшифровке.
проверял: длина зашифрованной строки до записи в файл, напр 1100 символов, а после чтения ее из файла 1092 символа.
poiuyt555
новенький
 
Сообщения: 51
Зарегистрирован: 12.09.2011 07:45:51

Re: Алгоритм шифрования [Решено]

Сообщение Vadim » 28.11.2012 12:50:55

А Вы в какой тип файла записываете строку?
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Алгоритм шифрования [Решено]

Сообщение vada » 28.11.2012 13:12:32

Строку? Скорее всего в текстовый :)
Аватара пользователя
vada
энтузиаст
 
Сообщения: 691
Зарегистрирован: 14.02.2006 13:43:17

Re: Алгоритм шифрования [Решено]

Сообщение svk12 » 28.11.2012 13:12:58

Для этого лучше использовать RC4. Длина строки не изменится.
svk12
постоялец
 
Сообщения: 409
Зарегистрирован: 09.06.2008 18:42:47

След.

Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 232

Рейтинг@Mail.ru