powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Расчет контрольной цифры
8 сообщений из 8, страница 1 из 1
Расчет контрольной цифры
    #32735662
Фотография Vladimir M Sklyar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Такая проблема:
есть квитанция на оплату коммунальных услуг, по данным, которые выводяться в этой квитанции необходимо расчитать некое число (набор цифр, букв, знаков), которое было бы уникально имеено для этой квитанции (контрольная сумма, хэш какой-нибудь)
входные параметры:
- лицевой счет
- код орг-ции по справочнику
- дата и время формирования
- и сами суммы начислений/оплат и т.д., которые выводяться в квитанции

в идале, чтобы эта цифра еще и разворачивалась обратно в суммы на квитанци

Зачем это нада:
появилось такое чуйство, что их начали потделывать (у меня лежит файлик, который собственно и отправляеться на печать), так вот цифтры в этом файлике резко отличаються от напечатаной квитанции, причем дата и время формирования совпадают до секунд - вот хотелось бы примудрить защиту от потделок.

PS Может кто как решал другими способами, с интересом выслушаю.
...
Рейтинг: 0 / 0
Расчет контрольной цифры
    #32735824
Станислав C.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladimir M Sklyar
так вот цифтры в этом файлике резко отличаються от напечатаной квитанции, причем дата и время формирования совпадают до секунд - вот хотелось бы примудрить защиту от потделок.


Я считаю, что для этого подойдет какой-нибудь простой способ. Что-то типа кодировки по EAN-13 (штрих-код на товарах), где указана страна, производитель и т.д. и обязательно стоит контрольная цифра. В принципе, алгоритм ее расчета известен, его можно найти в Инете и не представляет больших трудностей его закодировать. :) Правда, алгоритм работает только в одну сторону - расчет контрольной цифры :(.

Кстати, вдруг пришло в голову... Генальная идея :) ! Почему бы не хранить в качестве контрольной суммы просто 16-ричное представление знаков, составляющих информационную основу квитанции (лицевой счет,код организации,суммы...).
Например, "сумма: 101.25" преобразуется в "Е1Е3АСАСА03Ф203130312Е3235" (в кодовой странице 866). Преобразование в обе стороны тривиально, и не всякий юзверь вручную сможет исправить такую "контрольную сумму"... А если учитывать еще наличие различающихся кодовых страниц для DOS и Win...
...
Рейтинг: 0 / 0
Расчет контрольной цифры
    #32735832
Станислав C.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Станислав C.
Например, "сумма: 101.25" преобразуется в "Е1Е3АСАСА03Ф203130312Е3235" (в кодовой странице 866).

Sorry, правильно будет:
Например, "сумма: 101.25" преобразуется в "Е1Е3АСАСА03А203130312Е3235" (в кодовой странице 866).
...
Рейтинг: 0 / 0
Расчет контрольной цифры
    #32735969
Фотография Vladimir M Sklyar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для такой маленькой суммы такой страшный код
а если таких сумм 5 - 10, то тока код на всю квитанцию будет :)

По поводу EAN-13 - пошел искать, а там видно будет (сам штрих код мне не
нужен, а вот цифры)

Posted via ActualForum NNTP Server 1.0
...
Рейтинг: 0 / 0
Расчет контрольной цифры
    #32737036
BNick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Для Ваших целей вполне может подойти функция SYS(2007) - Checksum Value.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Расчет контрольной цифры
    #33569580
Фотография MaestroEv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А те, которые подделывают, они слепые... и не смогут. От подделки ЭТО не как не спасает.

Квитанция оплачена в банке - раз в день, банковский робот выгружает вам операции в "банк-клиент", вы тянете это в свою бухгалтерию.

Освобождаете человека, который наверняка вобьет не то, не туда, не тогда!
...
Рейтинг: 0 / 0
Расчет контрольной цифры
    #33569847
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladimir M SklyarТакая проблема: необходимо расчитать некое число (набор цифр, букв, знаков), которое было бы уникально имеено для этой квитанции (контрольная сумма, хэш какой-нибудь)...
Я бы посмотрел в сторону алгоритма Blue Fish - он выдает каждый раз новое выражение хэша для одной и той-же суммы. Кроме того, подставив обратно имеющиеся значения - он правильно говорит было оно изменено или нет... Естественно, что надо при расчете добавлять свой пароль, чтобы злоумышленники не подделали его + фамилия плательщика+ еще то, что Вам надо, что однозначно идентифицирует платеж...

Хотя как правильно заметил Евгений, всегда остается человеческий фактор...

На сайте UT были кажется бесплатные библиотеки и примеры по его использованию...

Good luck!
...
Рейтинг: 0 / 0
Расчет контрольной цифры
    #33569946
Urri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чтобы защититься также и от "продвинутых пользователей", каждой сессии печати квитанций пусть программа ставит в соответствие произвольную строчку символов, которая также будет участвовать в вычислении контрольной суммы, но значение которой, в идеале, никому не известно.
Эта строчка должна быть сохранена в БД для последующего использования.

Тогда, например, функция sys(2007) от строки, конкатенированной из- уникального идентификатора квитанции, который можно прочесть на квитанции (куда входит и id сессии печати),
- суммы квитанции,
- и этой самой произвольной строчки символовдаст контрольное число, которое обеспечит 1/65536 гарантию от подделки.
Проверка подлинности должна осуществляться кассиром, который при оплате все равно осуществляет ввод уникального идентификатора квитанции и оплачиваемой суммы. Перед фиксацией оплаты программа повторно вычисляет контрольную сумму и просит кассира сверить ее с суммой, указанной на квитанции.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Расчет контрольной цифры
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]