Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Разное
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 15.01.2015, 21:44
kreuzzz kreuzzz вне форума
Прохожий
 
Регистрация: 15.01.2015
Сообщения: 1
Версия Delphi: delphi
Репутация: 10
По умолчанию Срочно нужна помощь

Итак,вопрос такой.Есть контрольная сумма Crc32(1163338237 - в десятичном виде).
Зашифрованная данным алгоритмом :

Код:
var CRCtable: array[0..255] of cardinal;

procedure CRCInit;
var c: cardinal;
k, j: integer;
begin
  for k := 0 to 255 do
  begin
    c := k;
    for j := 1 to 8 do
      if odd( c ) then
        c := (c shr 1) xor $E6B8B860
      else
        c := (c shr 1);
    CRCtable [ k ] := c;
  end;
end;

function calcCRC(str:string):integer;
var crc,k:integer;
begin
  crc:=$FFFFFFFF;

  for k:=1 to length(str) do
    crc := (crc shr 8) xor CRCtable[ord(str [ k ]) xor (crc and $000000FF)];

  result := crc;
end;

Возможно ли перевести ее обратно в обычный текст?

Последний раз редактировалось kreuzzz, 15.01.2015 в 21:55.
Ответить с цитированием
  #2  
Старый 15.01.2015, 22:39
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Хеширование - это не шифрование. Это генерация числа фиксированной длины из набора данных произвольной длины, причем так, чтобы небольшое изменение входных данных приводило к резкому изменению числа. CRC32 преобразует данные любой длины в 4 байта. А раз возможных входных данных - бесконечное множество, а длина результата фиксирована, значит по определению множество (тоже бесконечное) входных текстов получат один и тот же CRC32. А это в свою очередь значит, что CRC32 обратно в конкретный текст преобразовать невозможно. Можно только получить множество подходящих текстов, но при большом количестве симовлов ( где-то >6 ) это уже затянется на часы, а если
символов еще больше - на тысячелетия.
__________________
jmp $ ; Happy End!
The Cake Is A Lie.

Последний раз редактировалось Bargest, 15.01.2015 в 22:42.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 17:02.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter