CRC32 - контрольная сумма для файла или для строки
5 (1)
CRC32 - контрольная сумма для файла или для строки ( KaMPiLeR 15.04.2015 13:33 )
5(1)В последнее время стали пугать вирусом для арм-кбр, который ищет файлы-отправки рейсов и заменяет реквизиты получателей платежей.
вот и задумались чтоб при печати реестра платежей печаталась контрольная сумма файла XML.
чтоб потом перед отправкой эту контрольную сумму сверяли.
ну эт еще и чтоб отправляющий позже не смог изменить файл.
а вирус или человек это был - но в конце прошлого года один московский банк попал на 200млн.
http://bankir.ru/dom/threads/73797-quot-%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8-quot-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B-%D0%9C%D0%A6%D0%98/page100?p=3201296&viewfull=1#post3201296
>> Ответитьэт я к тому что на похапе или на дельфях я найду CRC32, а на RSL это реализовывать чот не охота ( KaMPiLeR 15.04.2015 13:36 )
5(1)знаю что в operlog пишут контрольную сумму - если по такому же алгоритму как и везде - то как этой функцией воспользоваться.
или мож кто реализовал на RSL уже
>> Ответитьнашел на дельфях - в несколько строк ( KaMPiLeR 15.04.2015 14:24 )
5(1)http://www.delphisources.ru/pages/faq/base/fast_crc32.html
скомпилил запустил - с похапе совпадает.
>> ОтветитьАналогично на Java ( fplab 16.04.2015 09:15 )
5(1)Целых три варианта - на любой вкус
http://introcs.cs.princeton.edu/java/51data/CRC32.java.html
Думаю, можно переписать и на RSL. Правда, во всех вариантах нужны битовые операции, но если в RSL-макросе прописать
VAR js = ActiveX ("MSScriptControl.ScriptControl"); // JavaScript
то можно будет дергать нужные операции:
MSGBOX (js.eval (a + "&" + b);
>> ОтветитьБитовые операции в RSL ( Шкурко Владимир 16.04.2015 13:38 )
5(1)В RSL есть встроенные битовые операции (начиная с версии 7.16.1139), а также поддержка типа bigint (с версии 7.16.1149).
>> ОтветитьЧто это за версия? ( sokols 16.04.2015 15:57 )
5(1)Выполняю макрос
[############] (Version());
выдаёт версию в другом формате:
1151
Как они соотносятся?
>> ОтветитьКак они соотносятся ( Шкурко Владимир 16.04.2015 16:02 )
5(1)Version возвращает третий компонент версии. Т.е. у Вас 7.16.1151.
>> Ответить
Скачал свежую документацию по РСЛ (+) ( sokols 16.04.2015 16:15 )
5(1)Ни про XOR, ни про bigint ничего там не нашёл
>> ОтветитьВозможны накладки ( Шкурко Владимир 16.04.2015 16:21 )
5(1)AndBits(V_INTEGER v1, V_INTEGER v2):V_INTEGER
Побитовое И (результат равен v1 & v2)
Пример:
PrintLn(AndBits(715827882, 2457));
Выводит:
2184
OrBits(V_INTEGER v1, V_INTEGER v2):V_INTEGER
Побитовое ИЛИ (результат равен v1 | v2)
Пример:
PrintLn(OrBits(715827882, 2457));
Выводит:
715828155
NotBits(V_INTEGER v):V_INTEGER
Побитовое НЕ (результат равен ~v1)
Пример:
PrintLn(NotBits(715827882));
Выводит:
-715827883
XorBits(V_INTEGER v1, V_INTEGER v2):V_INTEGER
Побитовое исключающее ИЛИ (результат равен v1 ^ v2)
Пример:
PrintLn(XorBits(715827882, 2457));
Выводит:
715825971
ShiftBits(V_INTEGER v1, V_INTEGER v2):V_INTEGER
Арифметический сдвиг влево (умножение)/вправо (деление). Величина сдвига определяется параметром v2, направление сдвига - его знаком (если v2 больше или равно 0, то сдвиг выполняется влево (умножение), если меньше 0, сдвиг выполняется вправо (деление)).
Пример:
PrintLn(ShiftBits(715827882, 3));
Выводит:
1431655760
PrintLn(ShiftBits(715827882, -7));
Выводит:
5592405
Если фактические типы аргументов не соответствуют формальным, процедуры возвращают значение 0 с типом V_INTEGER.
>> Ответитьв doctor.d32 появилась такая функция... ( p2p 13.05.2015 11:08 )
5(1)Григория попросил - он сделал ))
>> Ответить
Мне кажется это ловля блох там где их нет. ( LeonL 16.04.2015 09:49 )
5(1)Если бабки угнали то это помог кто-то внутри. Без этого в россии ничего не происходит.
И толку в CRC будет ноль, если это вирус то он садится поверх КБР, и срабатывает после того как КБР заглотил посылку и CRC считать уже не у кого, так как ее съел КБР. А то что вы получите на его выходе уже зашифровано и никак не посмотришь.
>> Ответитьну как раз таки в этом случае защитимся от внутренних. ( p2p 16.04.2015 13:19 )
5(1)и останется в подозреваемых двое - формирующий и отправляющий.
если совместить две функции - то можно обойтись
>> Ответить