Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Клуб программистов > Свободное общение
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.01.2010, 02:10   #1
RIO
Форумчанин
 
Аватар для RIO
 
Регистрация: 15.12.2007
Сообщений: 422
По умолчанию Лучший метод шифрования текста

Доброго времени суток Какой метод шифрования текста по вашему мнению лучший ? Если можно, то с примерами
RIO вне форума Ответить с цитированием
Старый 15.01.2010, 02:25   #2
Vedrus
ИСККОНный хакер
Форумчанин
 
Аватар для Vedrus
 
Регистрация: 08.11.2007
Сообщений: 195
По умолчанию

"Одноразовый блокнот" - АБСОЛЮТНО неломаемый метод шифрования.
#define QUESTION bb || !bb
Vedrus вне форума Ответить с цитированием
Старый 15.01.2010, 02:40   #3
RIO
Форумчанин
 
Аватар для RIO
 
Регистрация: 15.12.2007
Сообщений: 422
По умолчанию

Улыбнуло Но, а если серьезно ? ? ? В интернете исходников, статей, на эту тему, но вот не знаю, что выбрать, нужно хороший метод шифрования текста, что бы душа была спокойна
RIO вне форума Ответить с цитированием
Старый 15.01.2010, 02:55   #4
Vedrus
ИСККОНный хакер
Форумчанин
 
Аватар для Vedrus
 
Регистрация: 08.11.2007
Сообщений: 195
По умолчанию

Вполне серьёзно, это официальный термин, погуглите. Суть: у отправителя и получателя есть N текстовых файлов, которые кроме них никто не знает. Шифрование происходит тупо xor'ом, т.е. исходный текст ксорится одним из этих N текстовых файлов. Результат передаётся получателю. Тот опять ксорит его и получает исходное сообщение.

Первое письмо ксорится первым файлом, второе - вторым и т.д. В альфабанке по похожему принципу система интернетбанкинга работает.
#define QUESTION bb || !bb
Vedrus вне форума Ответить с цитированием
Старый 15.01.2010, 04:11   #5
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

Анекдот про Неуловимого Джо знаете? От кого нужно защитить текст? Действительно ли нужно шифровать каким-нибудь навороченным блочным шифром с длинным ключом?

Вот компактная реализация RC4, быстрый и достаточно надёжный потоковый симметричный шифр, если конечно предстоит шифровать не банковские данные
Код:
var s: array [0..255] of Byte;
    i, j: Byte;

//Инициализация S-Box'а
procedure InitRC4Cipher(key: ShortString);
var k: array [0..255] of Byte;
    t: Byte;
    l: Cardinal;
    i0,j0: Byte;
begin
  for i0 := 0 to 255 do s[i0] := i0;
  j0 := 1;
  l := Length(key);
  for i0 := 0 to 255 do
  begin
    k[i0] := Ord(key[j0]);
    if j0 = l then j0 := 0;
    Inc(j0);
  end;

  for i0 := 0 to 255 do
  begin
    j0 := (j0 + k[i0] + s[i0]) mod 256;
    t := s[i0];
    s[i0] := s[j0];
    s[j0] := t;
  end;
  i := 0;
  j := 0;
end;

//Зашифровать конкретный символ
function GetRC4ByteCiphered(bt: Byte): Byte;
var t: Byte;
begin
  i := (i + 1) mod 256;
  j := (j + s[i]) mod 256;
  t := s[i];
  s[i] := s[j];
  s[j] := t;
  t := (s[i] + s[j]) mod 256;
  Result := bt XOR s[t];
end;

//Применить RC4 шифр к потоку данных
function ApplyRC4ToData(Data: TStream; var Buffer: TStream; key: ShortString): Boolean; stdcall;
var i: Cardinal;
    d: Byte;
    pos: Cardinal;
begin
  if (key = '')OR(Buffer = Data)OR(Buffer = nil)OR(Data = nil)OR(Data.Size = 0)OR(Buffer.Size <> 0) then
  begin
    Result := false;
    Exit;
  end;

  pos := Data.Position;
  Data.Position := 0;
  Buffer.CopyFrom(Data,Data.Size);
  Buffer.Position := 0;
  Data.Position := 0;

  try
    InitRC4Cipher(key);
    for i := 0 to Buffer.Size-1 do
    begin
      Data.ReadBuffer(d,1);
      d := GetRC4ByteCiphered(d);
      Buffer.WriteBuffer(d,1);
    end;
  except
    Result := false;
    Exit;
  end;

  Data.Position := pos;
  Buffer.Position := 0;
  Result := true;
end;
Вот куча других http://freem2.googlecode.com/svn/tru...dcp2b/Ciphers/
пыщь

Последний раз редактировалось JTG; 15.01.2010 в 04:15.
JTG вне форума Ответить с цитированием
Старый 15.01.2010, 06:15   #6
Greek9000
Форумчанин
 
Регистрация: 01.09.2009
Сообщений: 151
По умолчанию

Однажды была необходимость шифрования - собрал вот такую библиотечку (см. вложение)
Вас там интересует шифрование алгоритмом RC6.
Функции -
EncryptCopy - Зашифровать в новый поток
DecryptCopy - Расшифровать в новый поток
EncryptStream - Расшифровать поток
DecryptStream - Зашифровать поток
так же есть пара функций специально адаптированных для передачи по http:
function MyRC6Encrypt(Msg,Password:string):s tring;
function MyRC6Decrypt(Msg,Password:string):s tring;
первая зашифровывает Msg по ключу Password и возврашает текст в кодировке Base64, который можно без опасения передавать по интернету, не боясь что URL кодирование/декодирование изменит данные,
а вторая расшифровывает то, что зашифровала первая.

Так же в библиотеке есть функции работы с RSA (генерация ключей, шифрование, расшифровка, добавление цифровй подписи, верификация).
Есть URL кодирование/декодирование, получение md5 и ещё много чего нужного.

Библиотека в своё время использовалась для обмена сообщениями с терминалами быстрой оплаты.
Вложения
Тип файла: zip uCrypt.zip (19.9 Кб, 44 просмотров)
Greek9000 вне форума Ответить с цитированием
Старый 21.01.2010, 13:42   #7
RIO
Форумчанин
 
Аватар для RIO
 
Регистрация: 15.12.2007
Сообщений: 422
По умолчанию

Всем спасибо
RIO вне форума Ответить с цитированием
Старый 22.01.2010, 01:15   #8
RIO
Форумчанин
 
Аватар для RIO
 
Регистрация: 15.12.2007
Сообщений: 422
По умолчанию

Кстати, друзья, можно как-то перевести зашифрованную строку в числа?
RIO вне форума Ответить с цитированием
Старый 22.01.2010, 01:37   #9
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Ord(mystring[i])
mihali4 вне форума Ответить с цитированием
Старый 22.01.2010, 01:50   #10
RIO
Форумчанин
 
Аватар для RIO
 
Регистрация: 15.12.2007
Сообщений: 422
По умолчанию

А обратно числа в строку ?
RIO вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите определить метод двухстороннего шифрования Esuol Общие вопросы Delphi 7 21.06.2010 10:53
Программа для шифрования текста DefenderDf Помощь студентам 3 15.10.2009 20:30
Алгоритмы шифрования текста prizrak1390 Общие вопросы Delphi 4 25.09.2009 20:20
Определить метод шифрования по зашифр. строке Esuol Безопасность, Шифрование 0 04.12.2007 00:24