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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.03.2022, 14:14   #1
optimisticbearfan
Новичок
Джуниор
 
Регистрация: 19.03.2022
Сообщений: 4
По умолчанию Добавить строку к хешу

Есть 64-битные FNV-1 хеши, к которым нужно добавить строку _0_0_f.

Пример:
До: E76173242917B928
После: 4E8CA0DC1DEF8CF7

Как получить этот результат?

Буду благодарна любой помощи. Я не разбираюсь в теме — я художник, а не программист.
optimisticbearfan вне форума Ответить с цитированием
Старый 21.03.2022, 02:04   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Цитата:
Сообщение от optimisticbearfan Посмотреть сообщение
Я не разбираюсь в теме — я художник, а не программист.
Мне кажется, тогда легче найти программиста, который реализует программу, чем советы. Более сложный путь - найти готовую реализацию алгоритма хеширования и подправить под свою задачу. Опираясь на описание (FNV-1 hash), потыкал, но не смог получить из хеша E76173242917B928 хеш 4E8CA0DC1DEF8CF7 добавлением строки "_0_0_f".
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 21.03.2022, 10:39   #3
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,550
По умолчанию

Т.е. взлом не состоялся, правообладатель может спать спокойно ?
digitalis вне форума Ответить с цитированием
Старый 21.03.2022, 11:16   #4
optimisticbearfan
Новичок
Джуниор
 
Регистрация: 19.03.2022
Сообщений: 4
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
Опираясь на описание (FNV-1 hash), потыкал, но не смог получить из хеша E76173242917B928 хеш 4E8CA0DC1DEF8CF7 добавлением строки "_0_0_f".
Спасибо за ваше внимание.
Покопавшись в файлах, я пришла к выводу, что пример неверный.

Этот пример должен соответствовать требованиям:
До: D0777AF4228641D0
После: 865CC5BD8DAAC443

Если это не затруднит вас, проверьте с ним. В ином случае я последую вашему предложению.

Цитата:
Сообщение от digitalis Посмотреть сообщение
Т.е. взлом не состоялся, правообладатель может спать спокойно ?
Прошу прощения?
optimisticbearfan вне форума Ответить с цитированием
Старый 21.03.2022, 12:02   #5
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,550
По умолчанию

Да я так просто... Думаю, хэш делается не просто "чтобы был", а для защиты от несанкционированного изменения. Впрочем, мои скиллсы в этой области невелики и ограничиваются CRC.
https://habr.com/ru/post/534596/

Последний раз редактировалось digitalis; 21.03.2022 в 12:06.
digitalis вне форума Ответить с цитированием
Старый 21.03.2022, 12:14   #6
optimisticbearfan
Новичок
Джуниор
 
Регистрация: 19.03.2022
Сообщений: 4
По умолчанию

Это способ, которым специфическая текстура связывается с моделью. Берем id модели, добавляем «_x_y_f» и получаем id текстуры.
optimisticbearfan вне форума Ответить с цитированием
Старый 21.03.2022, 12:45   #7
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,550
По умолчанию

Это для меня - тёмный лес
digitalis вне форума Ответить с цитированием
Старый 21.03.2022, 17:44   #8
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Цитата:
Сообщение от optimisticbearfan Посмотреть сообщение
Этот пример должен соответствовать требованиям
Да, с этим совпадает:
Код:
function FNV1Hash(const hash: Int64; const buf: string): Int64;
var
  pb: PByte;
  i: Integer;
begin
  pb := PByte(@buf[1]);
  Result := hash;
  for i := Length(buf) downto 1 do
  begin
    Result := (Result * $100000001B3) xor pb^;
    Inc(pb);
  end;
end;

procedure TForm1.btn1Click(Sender: TObject);
begin
  mmo1.Text := IntToHex(FNV1Hash($D0777AF4228641D0, '_0_0_f'), 16);
end;
За основу взята функция из статьи FNV. Правда, код для Дельфи 7, а не C++.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 21.03.2022, 23:10   #9
optimisticbearfan
Новичок
Джуниор
 
Регистрация: 19.03.2022
Сообщений: 4
По умолчанию

Огромнейшее спасибо.
optimisticbearfan вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Добавить строку в таблицу Alexey! JavaScript, Ajax 6 22.01.2017 09:42
Добавить строку в таблицу ольгаг Microsoft Office Access 2 24.04.2016 18:14
Добавить строку в потоке D!zel Общие вопросы Delphi 4 08.05.2015 09:23
Listbox добавить строку Кольша Общие вопросы Delphi 1 12.01.2012 18:57
Добавить строку SkrudjMakdak Microsoft Office Excel 1 05.09.2010 18:06