Патрик Гёлль - Магнитные карты и ПК
- Название:Магнитные карты и ПК
- Автор:
- Жанр:
- Издательство:ДМК Пресс
- Год:2001
- Город:Москва
- ISBN:5-94074-060-Х (рус.); 2-10-023984-8 (фр.)
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Патрик Гёлль - Магнитные карты и ПК краткое содержание
Книга известного французского автора Патрика Гёлля откроет вам тайны магнитных карт, этик удобных и надежных средств, позволивших легко и просто решить множество технических проблем — оплаты, доступа, контроля.
Издание содержит все необходимое для того, чтобы вы могли заняться изучением принципов записи, чтения, кодирования и декодирования информации магнитных карт; описания несложных устройств позволят вам изготовить их самостоятельно. Множество различных программ обеспечат мощный инструментарий для исследований и экспериментов с картами при помощи компьютера.
Прочитав эту книгу, вы научитесь уверенно манипулировать информацией карт, записывая на них любые данные, иначе говоря, сможете проникнуть в «святая святых» профессионалов.
Магнитные карты и ПК - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
110 IF T(J+1)<>1 THEN 160
120 IF T(J+2)<>0 THEN 160
130 IF T(J+3)<>1 THEN 160
140 IF T{J+4)<>0 THEN 160
150 K=J: GOTO 200
160 J=J+1: GOTO 100
200 C$=""
210 FOR F=0 TO 4
220 IF T(K+F) =0 THEN C$=C$+"0"
230 IF T(K+F) =1 THEN C$=C$+"1"
240 NEXT F
250 GOSUB 2000
260 K=K+5: IF K>235 THEN END
270 GOTO 200
2000 IF C$="11010* THEN PRINT "{start}"
2010 IF C$="10110" THEN PRINT "{sep}"
2020 IF CS="11111" THEN PRINT "{end}"
2030 IP C$="01011" THEN PRINT "{10}";
2040 IF C$="00111" THEN PRINT "{12}";
2050 IF C$="01110" THEN PRINT "{14)";
2060 IF C$="00001" THEN PRINT "0";
2070 IF C$="10000" THEN PRINT "1";
2080 IF C$="01000" THEN PRINT "2";
2090 IF C$="11001" THEN PRINT "3";
2100 IF C$="00100“ THEN PRINT "4";
2110 IF C$="10101" THEN PRINT "5";
2120 IF C$="01101" THEN PRINT "6";
2130 IF C$="11100" THEN PRINT "7";
2140 IF C$="00010" THEN PRINT "8";
2150 IF C$="10011" THEN PRINT "9";
2170 RETURN
3000 REM (c) 1996 Patrick GUEULLE
Программа LECTISО2.BAS — основная программа, которую вы будете использовать для считывания дорожки ISO 2 стандартных магнитных карт. Если LECT75.EXE присутствует в текущей директории (наряду с COMMAND.COM), то любое прохождение читаемой карты (в правильном направлении) должно привести к отображению 240 считанных бит и соответствующих цифровых данных.
Ниже показано, что это дает в конкретном случае с файлом TEST5.CAR, представленным на сайте www.dmk.ru. Так, файл TEST5.CAR, декодированный с помощью программы LECTISО2.BAS, будет иметь следующий вид:

Одновременно создается файл CARTE.CAR, который нетрудно переименовать в DOS (командой REN), если есть желание его сохранить. Ни один из тестов (на четность или LRC) не производится.
Такие проверки можно осуществить по запросу при необходимости (дальше будут представлены соответствующие программы). Однако при этом существует риск сбоя в считывании некоторых нестандартных карт.
При отображении данных, записанных на дорожке, используются не стандартные «кабалистические* знаки, представленные выше в виде пяти- и семибитного кода ANSI, а знаки в более наглядной форме:
• флажок начала: {start};
• разделитель полей: {sep};
• флажок конца: {end};
• специальные знаки: {10}, {12} и {14}.
Внимание: не путайте эти фигурные скобки с простыми!
Считывание дорожки ISO 1
Работать с дорожкой ISO 1 несколько сложнее, поскольку обычно она записана с плотностью 210 bpi и содержит семиразрядные коды алфавитно-цифровых символов.
Осуществить считывание позволяет программа LECT210.PAS, которая работает аналогично LECT75.PAS. Ее исполняемая версия (LECT210.EXE) может использоваться либо самостоятельно для создания файла CARTE.CAR на 630 бит, либо вызываться из другой программы в оболочке Basic .


Отметим, что 630 бит — это 90 раз по 7 бит, то есть они соответствуют 79 знакам, которые максимально может содержать дорожка ISO 1, плюс 77 нулей заполнения.
10 REM — LECTISO1.BAS —
20 KEY OFF: CLS: PRINT: PRINT: PRINT: PRINT: PRINT: PRINT: PRINT: PRINT: PRINT
30 SHELL "LECT210.EXE"
40 OPEN "carte.car" FOR INPUT AS #1
50 DIM T(630)
60 FOR F=1 TO 630
70 INPUT#1,T(F)
80 NEXT F
90 J=1
100 IF T(J)<>1 THEN 160
110 IF T(J+1)<>0 THEN 160
120 IF T(J+2)<>1 THEN 160
130 IF T(J*3)<>0 THEN 160
140 IF T(J+4)<>0 THEN 160
141 IF T(J+5)<>0 THEN 160
142 IF T(J+6)<>1 THEN 160
150 K=J: GOTO 200
160 J=J+1:GOTO 100
200 C$=""
210 FOR F=0 TO 6
220 IF T(K+F) =0 THEN C$=C$+"0"
230 IF T(K+F)=1 THEN C$»C$+"1"
240 NEXT F
250 GOSUB 2000
260 K=K+7: IF K>623 THEN END
270 GOTO 200
2000 IF C$="1010001" THEN PRINT "{start}"
2010 IF C$="0111110" THEN PRINT "{sep}"
2020 IF C$="1111100" THEN PRINT "{end}"
2030 IF C$="0000001" THEN PRINT " ";
2031 IF C$="1000000" THEN PRINT "{1H}";
2032 IF C$="0100000" THEN PRINT "{2H}";
2033 IF C$="1100001" THEN PRINT "{3H}";
2034 IF C$="0010000" THEN PRINT "{4H}";
2036 IF C$="0110001" THEN PRINT "{6H}";
2037 IF C$="1110000" THEN PRINT "{7H}";
2038 IF C$="0001000" THEN PRINT "{8H}";
2039 IF C$="1001001" THEN PRINT "{9H}";
2040 IF C$="0101001" THEN PRINT "{AH}";
2041 IF C$="1101000" THEN PRINT "{BH}";
2042 IF C$="0011001- THEN PRINT "{CH}";
2043 IF C$="1011000- THEN PRINT "{DH}";
2044 IF C$="0111000" THEN PRINT "{EH}";
2045 IF C$="1111001" THEN PRINT "{FH}";
2060 IF C$="0000100" THEN PRINT "0";
2070 IF C$="1000101" THEN PRINT "1";
2080 IF C$="0100101" THEN PRINT "2";
2090 IF C$="1100100" THEN PRINT "3";
2100 IF C$="0010101" THEN PRINT "4"
2110 IF C$="1010100" THEN PRINT "5"
2120 IF C$="0110100" THEN PRINT "6";
2130 IF C$="1110101" THEN PRINT "7"
2140 IF C$="0001101" THEN PRINT "8";
2150 IF C$="1001100" THEN PRINT "9";
2151 IF C$="0101100" THEN PRINT "{1AH}";
2152 IF C$*"1101101" THEN PRINT "{1BH}";
2153 IF C$="0011100" THEN PRINT "{1CH}";
2154 IF C$="1011101" THEN PRINT "{1DH}";
2155 IF C$="0111101" THEN PRINT "{1EH}";
2160 IF C$="1000011" THEN PRINT "A";
2161 IF C$="0100011" THEN PRINT "В";
2162 IF C$="1100010" THEN PRINT "C";
2163 IF C$="0010011" THEN PRINT "D";
2164 IF C$="1010010" THEN PRINT "E";
2165 IF C$="0110010" THEN PRINT "F";
2166 IF C$="1110011" THEN PRINT "G";
2167 IF C$="0001011" THEN PRINT "H";
2168 IF C$="1001010" THEN PRINT "I";
2169 IF C$="0101010" THEN PRINT "J";
2170 IF C$="1101011" THEN PRINT "K";
2171 IF C$="0011010" THEN PRINT "L";
2172 IF C$="1011011" THEN PRINT "M";
2173 IF С$="0111011" THEN PRINT "N";
2174 IF C$="1111010' THEN PRINT "O";
2175 IF C$="0000111” THEN PRINT "P";
2176 IF C$="1000110" THEN PRINT "Q";
2177 IF C$="0100110" THEN PRINT "R";
2178 IF C$="1100111" THEN PRINT "S";
2179 IF C$="0010110" THEN PRINT "T";
2180 IF C$="1010111" THEN PRINT "U";
2181 IF C$="0110111" THEN PRINT "V";
2182 IF C$="1110110" THEN PRINT "W;
2183 IF C$="0001110" THEN PRINT "X";
2184 IF C$="1001111" THEN PRINT "Y";
2185 IF C$="0101111" THEN PRINT "Z";
2190 IF C$="1101110" THEN PRINT "{3BH);
2191 IF C$="0011111" THEN PRINT "{3DH);
2192 IF C$="1011110" THEN PRINT "{3EH);
2193 IF C$="1111111" THEN PRINT "{40H};
2999 RETURN
3000 REM (c) 1996 Patrick GUEULLE
LECTISO1.BAS — основная программа, которая посредством вызова
LECT210.EXE выполняет следующие операции:
• считывает 630 бит с дорожки ISO 1 и создает файл CARTE.CAR;
• отображает считанные 630 бит;
• отображает соответствующие алфавитно-цифровые символы.
Ниже представлен результат работы программы для частного случая файла TEST7.CAR, содержащегося на сайте www.dmk.ru(мы намеренно убрали несколько нулей заполнения).

Считывание дорожки ISO 3
Как и ISO 1, дорожка ISO 3 имеет плотность записи 210 bpi, но она содержит цифровые данные, которые закодированы пятиразрядным кодом.
Читать дальшеИнтервал:
Закладка: