- Любовные романы
- Фантастика и фэнтези
- Ироническое фэнтези
- Научная Фантастика
- Фэнтези
- Ужасы и Мистика
- Боевая фантастика
- Альтернативная история
- Космическая фантастика
- Попаданцы
- Юмористическая фантастика
- Героическая фантастика
- Детективная фантастика
- Социально-психологическая
- Боевое фэнтези
- Русское фэнтези
- Киберпанк
- Романтическая фантастика
- Городская фантастика
- Технофэнтези
- Мистика
- Разная фантастика
- Иностранное фэнтези
- Историческое фэнтези
- LitRPG
- Эпическая фантастика
- Зарубежная фантастика
- Городское фентези
- Космоопера
- Разное фэнтези
- Книги магов
- Любовное фэнтези
- Постапокалипсис
- Бизнес
- Историческая фантастика
- Социально-философская фантастика
- Сказочная фантастика
- Стимпанк
- Романтическое фэнтези
- Ироническая фантастика
- Детективы и Триллеры
- Проза
- Феерия
- Новелла
- Русская классическая проза
- Современная проза
- Повести
- Контркультура
- Русская современная проза
- Историческая проза
- Проза
- Классическая проза
- Советская классическая проза
- О войне
- Зарубежная современная проза
- Рассказы
- Зарубежная классика
- Очерки
- Антисоветская литература
- Магический реализм
- Разное
- Сентиментальная проза
- Афоризмы
- Эссе
- Эпистолярная проза
- Семейный роман/Семейная сага
- Поэзия, Драматургия
- Приключения
- Детская литература
- Загадки
- Книга-игра
- Детская проза
- Детские приключения
- Сказка
- Прочая детская литература
- Детская фантастика
- Детские стихи
- Детская образовательная литература
- Детские остросюжетные
- Учебная литература
- Зарубежные детские книги
- Детский фольклор
- Буквари
- Книги для подростков
- Школьные учебники
- Внеклассное чтение
- Книги для дошкольников
- Детская познавательная и развивающая литература
- Детские детективы
- Домоводство, Дом и семья
- Юмор
- Документальные книги
- Бизнес
- Тайм-менеджмент
- Кадровый менеджмент
- Экономика
- Менеджмент и кадры
- Управление, подбор персонала
- О бизнесе популярно
- Интернет-бизнес
- Личные финансы
- Делопроизводство, офис
- Маркетинг, PR, реклама
- Поиск работы
- Бизнес
- Банковское дело
- Малый бизнес
- Ценные бумаги и инвестиции
- Краткое содержание
- Бухучет и аудит
- Ораторское искусство / риторика
- Корпоративная культура, бизнес
- Финансы
- Государственное и муниципальное управление
- Менеджмент
- Зарубежная деловая литература
- Продажи
- Переговоры
- Личная эффективность
- Торговля
- Научные и научно-популярные книги
- Биофизика
- География
- Экология
- Биохимия
- Рефераты
- Культурология
- Техническая литература
- История
- Психология
- Медицина
- Прочая научная литература
- Юриспруденция
- Биология
- Политика
- Литературоведение
- Религиоведение
- Научпоп
- Психология, личное
- Математика
- Психотерапия
- Социология
- Воспитание детей, педагогика
- Языкознание
- Беременность, ожидание детей
- Транспорт, военная техника
- Детская психология
- Науки: разное
- Педагогика
- Зарубежная психология
- Иностранные языки
- Филология
- Радиотехника
- Деловая литература
- Физика
- Альтернативная медицина
- Химия
- Государство и право
- Обществознание
- Образовательная литература
- Учебники
- Зоология
- Архитектура
- Науки о космосе
- Ботаника
- Астрология
- Ветеринария
- История Европы
- География
- Зарубежная публицистика
- О животных
- Шпаргалки
- Разная литература
- Боевые искусства
- Прочее
- Периодические издания
- Фанфик
- Военное
- Цитаты из афоризмов
- Гиды, путеводители
- Литература 19 века
- Зарубежная образовательная литература
- Военная история
- Кино
- Современная литература
- Военная техника, оружие
- Культура и искусство
- Музыка, музыканты
- Газеты и журналы
- Современная зарубежная литература
- Визуальные искусства
- Отраслевые издания
- Шахматы
- Недвижимость
- Великолепные истории
- Музыка, танцы
- Авто и ПДД
- Изобразительное искусство, фотография
- Истории из жизни
- Готические новеллы
- Начинающие авторы
- Спецслужбы
- Подростковая литература
- Зарубежная прикладная литература
- Религия и духовность
- Старинная литература
- Справочная литература
- Компьютеры и Интернет
- Блог
Магнитные карты и ПК - Патрик Гёлль
Шрифт:
Интервал:
Закладка:
Программа CREMAG.BAS выполняет функцию, прямо противоположную функции программы DEC5.BAS в том смысле, что она трансформирует цифровые данные в файл .CAR, готовый к записи и включающий нули запуска и заполнения.
10 REM — CREMAG.BAS —
20 KEY OFF: CLS
30 PRINT "Ввести данные, предназначенные для записи,"
40 PRINT "затем нажать ENTER"
50 А$=""
60 INPUT В$
70 IF В$ = "" THEN 100
80 А$=А$+В$
90 GOTO 60
100 C$="0000000000"
110 FOR F=1 ТО LEN(A$)
120 IF MID$(A$,F,1)="0" THEN C$=C$+"00001": GOTO 240
130 IF MID$(A$,F,1)="1" THEN C$=C$+"10000": GOTO 240
140 IF MID$(A$,F,1)="2" THEN C$=C$+"01000": GOTO 240
150 IF MID$(A$,F,1)="3" THEN C$=C$+"11001": GOTO 240
160 IF MID$(A$,F,1)="4" THEN C$=C$+"00100": GOTO 240
170 IF MID$(A$,F,1)="5" THEN C$*C$+"10101": GOTO 240
180 IF MID$(A$,F,1)="6" THEN C$=C$+"01101": GOTO 240
190 IF MID$(A$,F,1)="7" THEN C$=C$+"11100": GOTO 240
200 IF MID$(A$,F,1)="8" THEN C$=C$+"00010": GOTO 240
210 IF MID$(A$,F,1)="9" THEN C$=C$+"10011": GOTO 240
220 IF MID$(A$,F,1)=" {" THEN 370
230 PRINT: PRINT "Данные не действительны (запрещенные СИМВОЛЫ)": ВЕЕР: END
240 NEXT F
250 IF LEN(C$)<=210 THEN 270
260 PRINT: PRINT "Данные слишком длинные (максимум 40 цифровых символов)": END
270 C$="0"+С$
280 IF LEN (C$) =240 THEN 320
290 C$=C$+"0"
300 IF LEN(C$)=240 THEN 320
310 GOTO 270
320 OPEN "carte.car" FOR OUTPUT AS #1
330 FOR F=1 TO LEN(C$)
340 PRINT#1,MID$(C$,F,1)+CHR$(32);
350 NEXT F
360 CLS: PRINT: PRINT "Файл CARTE.CAR готов": BEEP: END
500 IF MID$(A$,F,1)<>T THEN 230
510 GOTO 240
520 REM (c)1996 Patrick GUEULLE
Как и программа MAGWRITE, CREMAG предназначена для кодирования дорожки ISO 2 и, следовательно, будет обрабатывать только цифровые данные. Разделительные символы воспринимаются именно в том виде, в каком их отображает DEC5, то есть в фигурных скобках (а не в простых круглых скобках или кавычках).
Так, флажок старта будет записан как {start}, флажок конца как {end}, разделитель полей как {sep}.
Перейти на новую строку можно путем однократного нажатия на клавишу ENTER. Создание файла .CAR инициируется двукратным нажатием этой клавиши.
Количество кодируемых данных значения не имеет, если не превышается максимум, отведенный дорожке ISO 2. Нули заполнения автоматически записываются в начале и конце дорожки, чтобы отцентровать блок информационных битов.
ПРОГРАММА РАСЧЕТА КОНТРОЛЬНЫХ КЛЮЧЕЙПри необходимости записать на карте последовательности цифр, то есть некие числовые данные, которые могут оказаться номерами банковских счетов (не исключено), возникает проблема обеспечения безопасности. Как мы уже знаем, эту проблему можно решить путем добавления контрольного ключа, рассчитываемого по стандартному алгоритму, которого придерживаются практически все производители карт.
Программа LUHN.BAS способна рассчитать эту дополнительную цифру вне зависимости от количества цифр (четного или нечетного) номера, который требуется защитить.
10 REM — LUHN.BAS —
20 KEY OFF: CLS
30 CLEAR: PRINT: PRINT "Введите цифровые данные, которые требуют обеспечения безопасности": INPUT N$
40 L=LEN(N$): DIM N(L+1)
50 FOR F=1 TO L
60 C$=MID$(N$,F,1): C=VAL(C$): N(F)=C
70 NEXT F
80 IF (L/2) — INT(L/2) =0 THEN 200
90 T=0: FOR F=1 TO L STEP 2
100 C=2*N(F): IF C>=10 THEN C=C-9
110 T=T+C: NEXT F
120 FOR F=2 TO L-1 STEP 2
130 T=T+N(F): NEXT F
140 IF T>=10 THEN T=T-10: GOTO 140
150 N=10-T: IF N=10 THEN N=0
160 N(L+1)=N
170 CLS: FOR F=1 TO L+1
180 PRINT N(F);: NEXT F
190 PRINT: GOTO 30
200 T=0: FOR F=2 TO L STEP 2
210 C=2*N(F): IF C>=10 THEN C=C-9
220 T=T+C: NEXT F
230 FOR F=1 TO L-1 STEP 2
240 T=T+N(F):NEXT F
250 IF T>=10 THEN T=T-10: GOTO 250
260 N=10-T: IF N=10 THEN N=0
270 GOTO 160
280 REM (c)1996 Patrick GUEULLE
Определенный таким образом ключ добавляется в конце защищаемого номера. Полученная при этом последовательность цифр успешно проходит проверку, производимую программой LUHNCHK (см. главу 3).
Это дает читателям возможность проверить (при повторном считывании) целостность данных, которые они закодировали на своих картах.
ПРОГРАММА РАСЧЕТА LRCСимвол LRC в принципе должен кодироваться после флажка end каждой дорожки вслед за проверкой нечетности и расчетом контрольного ключа с целью обеспечения последнего уровня безопасности.
Программа LRCMAG.BAS, как и CREMAG, ждет введения с помощью клавиатуры всех данных, начиная с флажка start и до флажка end включительно.
10 REM — LRCMAG. BAS —
20 KEY OFF: CLS
30 PRINT "Введите данные для кодирования"
40 PRINT "затем нажать ENTER"
50 А$=""
60 INPUT В$
70 IF В$ = "" THEN 100
80 А$=А$+В$
90 GOTO 60
100 C$=""
110 FOR F=1 TO LEN(A$)
120 IF MID$(A$,F,1)="{" THEN 300
130 V=VAL(MID$(A$,F,1))
140 C$=C$+CHR$ (V)
150 NEXT F
160 L=0
170 FOR F=1 TO LEN(C$)
180 L=L XOR ASC(MID$(C$,F, 1))
190 NEXT F
200 PRINT "LRC ="
210 IF L=11 THEN PRINT "{start}": GOTO 280
220 IF L=13 THEN PRINT "{sep)": GOTO 280
230 IF L=15 THEN PRINT "{end}": GOTO 280
240 IF L=10 THEN PRINT "{10}": GOTO 280
250 IF L=12 THEN PRINT "{12}": GOTO 280
260 IF L=14 THEN PRINT "{14}": GOTO 280
270 PRINT L
280 END
300 F=F+1
310 IP MID$(A$,F,1) = "1" THEN 340
320 IF MID$(A$,F,1) = "s" THEN 390
330 IF MID$(A$,F,1)="e" THEN C$=C$+CHR$ (15): F=F+3: GOTO 430
340 F=F+1
350 IF MID$(A$,F, 1) = "0" THEN C$=C$+CHR$(10): F=F+1: GOTO 430
360 IF MID$(A$,F,1) = "2" THEN C$=C$+CHR$(12): F=F+1: GOTO 430
370 IF MID$(A$,F,1) = "4" THEN C$=C$+CHR$(14): F=F+1: GOTO 430
380 GOTO 130
390 F=F+1
400 IF HID$(A$,F,1) = "t" THEN C$=C$+CHR$ (11): F=F+4: GOTO 430
410 IF MID$ (A$,F, 1) ="e" THEN C$=C$+CHR$ (13): F=F+2: GOTO 430
420 CLS: PRINT "Ошибка!": BEEP: END
430 IF MID$(A$,F, 1)<>")" THEN 420
440 GOTO 150
450 REM (c)1996 Patrick GUEULLE
После двойного нажатия на клавишу ENTER программа выдает символ, который надо вставить за флажком end во время ввода данных в программе кодирования CREMAG.
СТИРАНИЕ МАГНИТНЫХ КАРТКак и все магнитные носители, карты могут стираться практически неограниченное число раз. Самый простой способ стереть карту — произвести новую запись, которая затрет предыдущие данные.
Однако общее стирание рекомендуется делать в любом случае, поскольку из-за несоответствия стандартам, например минимального несоответствия высоты воздушного зазора или небольшого смещения положения записывающей головки, существует опасность того, что часть старых данных не перекроется новыми.
При этом возможна ситуация, когда карта будет нормально считываться на одних считывающих устройствах и неправильно — на других. Может также возникнуть необходимость убрать некоторые данные, относящиеся к разряду конфиденциальных, например расположенных на дорожках ISO 1 и ISO 3, карты, которая используется повторно и запись на которую будет вестись только на дорожке ISO 2.
Наиболее надежно стирается вся информация с дорожек карты при помощи простого постоянного магнита. По крайней мере, это относится к картам с низкой коэрцитивностью (LoCo). Только очень мощные магниты (например, от громкоговорителей) могут претендовать на эффективное стирание дорожек HiCo на 2750 Э и тем более на 4000 Э.
Оптимальный порядок действий состоит в том, чтобы положить карту на стальной лист (автор данной книги воспользовался корпусом блока питания для кодера) и к нему через карту приставить мощный магнит.
Необходимо один или несколько раз провести магнитом вдоль всей магнитной полосы, но так, чтобы он проходил по всем дорожкам. Если вы боитесь, что магнит может поцарапать карту, то из предосторожности на нее следует положить лист бумаги.
Естественно, проверка с помощью «магнитного разоблачителя» позволит лучше, чем попытка повторного считывания, убедиться в эффективности проведенной операции. Для более специфических случаев, скажем стирания единственной дорожки, можно построить стирающее устройство, которое будет очень похоже на кодер: головка будет питаться постоянным током, полярность которого значения не имеет. В случае головок с сопротивлением 300–500 Ом прямое подключение к напряжению 5-12 В будет достаточным.