Форум программистов
 
Расширенный поиск
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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



Ответ
 
Опции темы
Старый 24.12.2014, 05:02   #21
Slym
Профессионал
 
Регистрация: 07.12.2011
Адрес: Siberia
Сообщений: 1,003
Репутация: 659
По умолчанию

вот у меня как-то совпадает...

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
все склонен дyмать что там своя магия. мд5 используется явно от ssl.
Да хоть md5 от Васи Пупкина... суть алгоритма не меняет... MD5 и так признан "слабым", а всякие левые шаманства устойчивости не добавляют...
Изображения
Тип файла: png Безымянный.png (25.6 Кб, 109 просмотров)
__________________
Не стесняемся, плюсуем!

Последний раз редактировалось Slym; 24.12.2014 в 05:12.
Slym вне форума   Ответить с цитированием
Старый 24.12.2014, 09:36   #22
WinCoder
Заблокирован
 
Регистрация: 24.11.2014
Сообщений: 721
Репутация: 76
По умолчанию

Цитата:
Сообщение от Slym Посмотреть сообщение
вот у меня как-то совпадает...
Ну вот смотрите скриншот. Имей и в Вашей программе, и в оригинальной один и тот же. Зелёной линией я отметил то, что совпало, красной то, что не совпало. Или у Вас как-то иначе?
Изображения
Тип файла: jpg Безымянный.jpg (33.4 Кб, 10 просмотров)

Последний раз редактировалось WinCoder; 24.12.2014 в 09:46.
WinCoder вне форума   Ответить с цитированием
Старый 24.12.2014, 09:43   #23
Slym
Профессионал
 
Регистрация: 07.12.2011
Адрес: Siberia
Сообщений: 1,003
Репутация: 659
По умолчанию

вот что на рисунке не понятно?
а считается столько сколько указано...
там в одном алгоритме есть важное ветвление коренным образом меняющея расчет
для проверки обоих ветвлений 2 разных имея проверяются... а также для статистической достоверности



ПС!!!
там разные IMEI!!!!!!!!!!
там разные IMEI!!!!!!!!!!
там разные IMEI!!!!!!!!!!
там разные IMEI!!!!!!!!!!
там разные IMEI!!!!!!!!!!
Изображения
Тип файла: png Безымянный.png (34.8 Кб, 108 просмотров)
Тип файла: jpg Безымянный.jpg (36.4 Кб, 4 просмотров)
__________________
Не стесняемся, плюсуем!

Последний раз редактировалось Slym; 24.12.2014 в 10:08.
Slym вне форума   Ответить с цитированием
Старый 24.12.2014, 10:50   #24
WinCoder
Заблокирован
 
Регистрация: 24.11.2014
Сообщений: 721
Репутация: 76
По умолчанию

Всё, увидел. Ошибки нет. Разные IMEY. Расшифровка всех веток верна. Можно продолжать перевод.

Заметил, что у меня не верно считается encrupt_4. Видимо из за того, что md5 написан под Ansi, а я работаю из под XE7 юникод.

Последний раз редактировалось WinCoder; 24.12.2014 в 11:47.
WinCoder вне форума   Ответить с цитированием
Старый 24.12.2014, 21:02   #25
Slym
Профессионал
 
Регистрация: 07.12.2011
Адрес: Siberia
Сообщений: 1,003
Репутация: 659
По умолчанию

Код:

unit encrypt_3;

//
//  Калькулятор nlock-кодов для модемов Huawei с новым алгоритмом v201
//  Автор - forth32
//  2014 год
//  Портировал Delphi - Slym
//  Ветка для вычисления кодов с индексом 2
//

interface

function Encrypt(const imei:string;version:integer):string;

implementation
uses SysUtils, HashMD5;

function XProc(const x:byte):byte;
var cx:Int64;
  r2,r3:integer;
begin
  cx:=Int64($cccccccd)*Int64(x);
  r2:=(cx shr 32);
  r2:=r2 shr 3;
  r3:=r2 shl 3;
  r2:=r2 shl 1;
  result:=x-(r2+r3);
end;

function Encrypt(const imei:string;version:integer):string;
var
  MD5:T4LongWordRecord;
  buf:PByteArray;
  i,r1:integer;
begin
  result:=StringOfChar('0',8);
  MD5:=HashValueStr(imei);
  buf:=PByteArray(@MD5);
  if version=201 then
    buf:=PByteArray(integer(buf)+5);

  r1:=XProc(buf[0]);
  if r1<>0 then
    buf[0]:=r1
  else
  begin
    for i:=8 to 13 do
    begin
      r1:=XProc(buf[i]);
      if r1<>0 then break;
    end;
    if (r1=0) then
      buf[0]:=5
    else
      buf[0]:=r1;
  end;

  for i:=0 to 7 do
  begin
    r1:=(buf[i]-$30) and $ff;
    if (r1>9) then
    begin
      r1:=XProc(buf[i]);
      result[i+1]:=Chr(r1+$30);
    end else
      result[i+1]:=Chr(buf[i]);
  end;
end;

end.

__________________
Не стесняемся, плюсуем!
Slym вне форума   Ответить с цитированием
Старый 24.12.2014, 22:16   #26
WinCoder
Заблокирован
 
Регистрация: 24.11.2014
Сообщений: 721
Репутация: 76
По умолчанию

Переведено верно. Остались encrypt_6, и encrypt_7
Цитата:
IMEI 352239005314800 calc201 ветка 0 encrypt_1 29081473
IMEI 355239005314800 calc2 ветка 0 encrypt_1 48821554

IMEI 354239005314800 calc201 ветка 1 encrypt_2 95001296
IMEI 353239005314800 calc2 ветка 1 encrypt_2 92430611

IMEI 352239005314816 calc201 ветка 2 encrypt_3 92159468
IMEI 352239005314804 calc2 ветка 2 encrypt_3 42808710

IMEI 357239005314800 calc201 ветка 3 encrypt_4 41028861
IMEI 356239005314800 calc2 ветка 3 encrypt_4 57050088

IMEI 351239005314800 calc201 ветка 4 encrypt_6 - N/A -
IMEI 354239005314800 calc2 ветка 4 encrypt_5_v2 66469054

IMEI 356239005314800 calc201 ветка 5 encrypt_6 - N/A -
IMEI 352239005314800 calc2 ветка 5 encrypt_6 - N/A -

IMEI 352239005314806 calc201 ветка 6 encrypt_7 - N/A -
IMEI 350239005314800 calc2 ветка 6 encrypt_7 - N/A -

Последний раз редактировалось WinCoder; 24.12.2014 в 22:18.
WinCoder вне форума   Ответить с цитированием
Старый 24.12.2014, 22:59   #27
Slym
Профессионал
 
Регистрация: 07.12.2011
Адрес: Siberia
Сообщений: 1,003
Репутация: 659
По умолчанию

Код:

unit encrypt_6;

//
//  Калькулятор nlock-кодов для модемов Huawei с новым алгоритмом v201
//  Автор - forth32
//  2014 год
//  Портировал Delphi - Slym
//  Ветка для вычисления кодов с индексом 5 и 6 - они одинаковые и отличаются только номерами выбираемых числе из хеша
//

interface

function Encrypt(const imei:string;version:integer):string;

implementation
uses SysUtils, IcsSHA1;

//Используется алгоритм SHA1, но не дайджест, а промежуточный результат Intermediate_Hash

function Encrypt(const imei:string;version:integer):string;
var
  context: SHA1Context;
  digest : SHA1Digest;
  c1,c2:cardinal;
begin
  SHA1Reset ( context);
  SHA1Input ( context, PChar( @imei[1] ), length(imei));
  SHA1Result( context, digest );

  case version of
    2: c1:=context.Intermediate_Hash[0];
    5: c1:=context.Intermediate_Hash[1];
    6: c1:=context.Intermediate_Hash[2];
  end;

  case version of
    2: c2:=context.Intermediate_Hash[1];
    5: c2:=context.Intermediate_Hash[4];
    6: c2:=context.Intermediate_Hash[3];
  end;

  result:=IntToStr(c1)+IntToStr(c2);
  SetLength(result,8);
end;

end.

__________________
Не стесняемся, плюсуем!

Последний раз редактировалось Slym; 25.12.2014 в 06:33.
Slym вне форума   Ответить с цитированием
Старый 24.12.2014, 23:26   #28
WinCoder
Заблокирован
 
Регистрация: 24.11.2014
Сообщений: 721
Репутация: 76
По умолчанию

Slym какие значения выдаёт по IMEI 352239005314800? У меня что-то в минус ушло

Последний раз редактировалось WinCoder; 24.12.2014 в 23:41.
WinCoder вне форума   Ответить с цитированием
Старый 25.12.2014, 06:34   #29
Slym
Профессионал
 
Регистрация: 07.12.2011
Адрес: Siberia
Сообщений: 1,003
Репутация: 659
По умолчанию

Цитата:
Сообщение от WinCoder Посмотреть сообщение
Slym какие значения выдаёт по IMEI 352239005314800? У меня что-то в минус ушло
как обычно приведение типов,
нужен беззнаковый cardinal
исправил...
__________________
Не стесняемся, плюсуем!
Slym вне форума   Ответить с цитированием
Старый 25.12.2014, 16:40   #30
WinCoder
Заблокирован
 
Регистрация: 24.11.2014
Сообщений: 721
Репутация: 76
По умолчанию

В юните encrypt_2 заметил, что массив из алго вычисления crc32. Можно упростить?
WinCoder вне форума   Ответить с цитированием
Ответ



Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Algo 2 -=$mile_Cr@Ft=- Паскаль 0 28.11.2008 16:59
calculator II leonw Общие вопросы Delphi 3 08.08.2008 11:09




23:41.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

купить трафик


как улучшить посещаемость, а также решения по монетизации сайтов, видео и приложений

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
лучший хостинг
Выбираем лучший хостинг: рейтинг ТОП 10