Хеширование массива данных

Хеширование – преобразование входного массива данных произвольной длины в выходную битовую строку фиксированной длины (хэш-код) с помощью специальных алгоритмов, называемых хеш-функциями. Хеширование применяется для сравнения данных. Если хэш-коды двух массивов данных одинаковы, то, скорее всего сами массивы идентичны. Вероятность совпадения хэш-кодов двух различных массивов данных равна 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

Аннотация

Методы контроля цифровых автоматов. Решение всех задач контроля становится возможным только при наличии определенной избыточности информации, которая сопровождает основную информацию.

Ключевые слова:представление кодов, методы контроля.