Хеширование массива данных
Хеширование – преобразование входного массива данных произвольной длины в выходную битовую строку фиксированной длины (хэш-код) с помощью специальных алгоритмов, называемых хеш-функциями. Хеширование применяется для сравнения данных. Если хэш-коды двух массивов данных одинаковы, то, скорее всего сами массивы идентичны. Вероятность совпадения хэш-кодов двух различных массивов данных равна 1/r, где r – размерность хэш-кода. Например, с помощью 16-ричного хэш-кода длиной 4 символа, мы можем однозначно определить 65536 (в 16-ричной системе – FFFF) или 16^4 массивов данных. Так как на самом деле этих массивов бесчисленное множество, то на каждый массив из этого множества будет приходиться один из 65536 хэш-кодов, а соответственно вероятность совпадения хэш-кодов двух случайных массивов будет равна 1/65536 ~ 0.00001525878. Очевидно, что чем длиннее хэш-код, тем больше его надежность. Простейшими примерами хеш-функций могут служить контрольные суммы и CRC (cyclic redundancy code – циклический избыточный код).
В нашем случае мы выбрали CRC16 за основной алгоритм хеширования. Он обеспечивает достаточно надежную защиту от ошибки (совпадения случайно набранного неверного массива с исходным) с одной стороны, и простоту его проверки – с другой.
При формировании бланка оплаты программа рассчитывает хэш-код массива данных, состоящего из необходимых нам полей (ИНН, БИК, расчетный счет и т.д.) и записывает его в отдельном поле на бланке. Плательщик показывает этот бланк кассиру, который заполняет необходимые поля. Программа на основе того же алгоритма рассчитывает хэш-код заполненных полей и сравнивает его с введенным хэш-кодом. Если эти поля заполнены верно, то кассир может выполнять дальнейшую операцию транзакции, может быть уверен, что он не ошибся в наборе номеров.
Скриншоты программы
Интерфейс программы подготовки к печати
Распечатанный бланк
Интерфейс программы ввода
Интерфейс программы ввода (отправка ошибочных данных недоступна)
Заключение
Таким образом, мы сможем сократить количество ошибок, связанных с неверным вводом данных, в десятки тысяч раз, а, соответственно, и расходы на их исправление. А плательщика не будут так часто тревожить уведомления об оплате.
Литература
http://ru.wikipedia.org/wiki/Хеширование
References
http://ru.wikipedia.org/wiki/Хеширование
Контроль работы цифровых автоматов
Олейников Антон Дмитриевич
Всероссийская государственная налоговая академия
Министерства финансов Российской Федерации,
Студент, e-mail: Antonio.rossi@mail.ru
Аннотация
Методы контроля цифровых автоматов. Решение всех задач контроля становится возможным только при наличии определенной избыточности информации, которая сопровождает основную информацию.
Ключевые слова:представление кодов, методы контроля.