Магнитные пластиковые карточки
Принцип магнитной записи ничем не отличается от принятого в звукозаписи. Для его реализации подходит звуковая аппаратура. Стирание можно делать постоянным магнитом с пластиной - концентратором магнитного потока. Хотя при таком стирании велик уровень шумов, для цифрового считывания это не важно. Запись производят без подмагничивания постояныым или ВЧ током, так даже достигаются более резкие переходы намагниченности носителя. Для изготовления магнитной полоски самодельных карточек подойдет старая 5 " дискета на 360 Кб, имеющая слой с низкой коэрцитивностью.
Кодирование данных осуществляется общепринятым методом "без возврата к нулю", который исключает длинные участки постоянной намагниченности, что облегчает синхроннизацию при считывании.
Усиленный выходной сигнал с читающей головки проходит двухпороговый компаратор, формирующий ВЫСОКИЙ и НИЗКИЙ логичекие уровни. Цифровые данные поступают на стандартный последовательный интерфейс (типа RS-232), передающий данные на обработку компьютеру.
На рисунке видно, что если в момент синхро-отсчета уровень сигнала НЕ меняется, то он считается равным НУЛЮ, а если сигнал имеет перепад, то ЕДИНИЦЕ.
2. Физический стандарт записи |
Расположение дорожек на карточке показывает рисунок:
Если карточку расположить магнитной полоской к себе, так, чтобы полоска была снизу карточки, то данные записаны слева направо.
3. Форматы кодирования данных |
Этот вариант кодирования имеет длину слова в 5 бит. Первые четыре бита - данные, a 5-й - бит четности. Cумма всех пяти битов должна давать НЕчетное число. Младший бит b1 считывается первым в серии.
b1 | b2 | b3 | b4 | b5 | Символ | Значение |
0 | 0 | 0 | 0 | 1 | 0 (0H) | Цифра |
1 | 0 | 0 | 0 | 0 | 1 (1H) | " |
0 | 1 | 0 | 0 | 0 | 2 (2H) | " |
1 | 1 | 0 | 0 | 1 | 3 (3H) | " |
0 | 0 | 1 | 0 | 0 | 4 (4H) | " |
1 | 0 | 1 | 0 | 1 | 5 (5H) | " |
0 | 1 | 1 | 0 | 1 | 6 (6H) | " |
1 | 1 | 1 | 0 | 0 | 7 (7H) | " |
0 | 0 | 0 | 1 | 0 | 8 (8H) | " |
1 | 0 | 0 | 1 | 1 | 9 (9H) | " |
0 | 1 | 0 | 1 | 1 | : (AH) | Управление |
1 | 1 | 0 | 1 | 0 | ; (BH) | Начало последовательности |
0 | 0 | 1 | 1 | 1 | Управление | |
1 | 0 | 1 | 1 | 0 | = (DH) | Разделитель полей |
0 | 1 | 1 | 1 | 0 | > (EH) | Управление |
1 | 1 | 1 | 1 | 1 | ? (FH) | Конец последовательности |
Этот формат (буквенно-цифровой) содержит определения 64 символов, при 7-битном кодировании, 6 значащих битах, и седьмом бите четности, как и в предыдущем формате. Младший бит b1 считывается первым.
b1 | b2 | b3 | b4 | b5 | b6 | b7 | Символ | Значение |
0 | 0 | 0 | 0 | 0 | 0 | 1 | space (0H) | Специальный |
1 | 0 | 0 | 0 | 0 | 0 | 0 | ! (1H) | " |
0 | 1 | 0 | 0 | 0 | 0 | 0 | " (2H) | " |
1 | 1 | 0 | 0 | 0 | 0 | 1 | # (3H) | " |
0 | 0 | 1 | 0 | 0 | 0 | 0 | $ (4H) | " |
1 | 0 | 1 | 0 | 0 | 0 | 1 | % (5H) | Начало последовательности |
0 | 1 | 1 | 0 | 0 | 0 | 1 | & (6H) | Специальный |
1 | 1 | 1 | 0 | 0 | 0 | 0 | ' (7H) | " |
0 | 0 | 0 | 1 | 0 | 0 | 0 | ( (8H) | " |
1 | 0 | 0 | 1 | 0 | 0 | 1 | ) (9H) | " |
0 | 1 | 0 | 1 | 0 | 0 | 1 | * (AH) | " |
1 | 1 | 0 | 1 | 0 | 0 | 0 | + (BH) | " |
0 | 0 | 1 | 1 | 0 | 0 | 1 | , (CH) | " |
1 | 0 | 1 | 1 | 0 | 0 | 0 | - (DH) | " |
0 | 1 | 1 | 1 | 0 | 0 | 0 | . (EH) | " |
1 | 1 | 1 | 1 | 0 | 0 | 1 | / (FH) | " |
0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 (10H) | Данные (цифры) |
1 | 0 | 0 | 0 | 1 | 0 | 1 | 1 (11H) | " |
0 | 1 | 0 | 0 | 1 | 0 | 1 | 2 (12H) | " |
1 | 1 | 0 | 0 | 1 | 0 | 0 | 3 (13H) | " |
0 | 0 | 1 | 0 | 1 | 0 | 1 | 4 (14H) | " |
1 | 0 | 1 | 0 | 1 | 0 | 0 | 5 (15H) | " |
0 | 1 | 1 | 0 | 1 | 0 | 0 | 6 (16H) | " |
1 | 1 | 1 | 0 | 1 | 0 | 1 | 7 (17H) | " |
0 | 0 | 0 | 1 | 1 | 0 | 1 | 8 (18H) | " |
1 | 0 | 0 | 1 | 1 | 0 | 0 | 9 (19H) | " |
0 | 1 | 0 | 1 | 1 | 0 | 0 | : (1AH) | Специальный |
1 | 1 | 0 | 1 | 1 | 0 | 1 | ; (1BH) | " |
0 | 0 | 1 | 1 | 1 | 0 | 0 | " | |
1 | 0 | 1 | 1 | 1 | 0 | 1 | = (1DH) | " |
0 | 1 | 1 | 1 | 1 | 0 | 1 | > (1EH) | " |
1 | 1 | 1 | 1 | 1 | 0 | 0 | ? (1FH) | Конец пос-ти |
0 | 0 | 0 | 0 | 0 | 1 | 0 | @ (20H) | Специальный |
1 | 0 | 0 | 0 | 0 | 1 | 1 | A (21H) | Данные (буквы) |
0 | 1 | 0 | 0 | 0 | 1 | 1 | B (22H) | " |
1 | 1 | 0 | 0 | 0 | 1 | 0 | C (23H) | " |
0 | 0 | 1 | 0 | 0 | 1 | 1 | D (24H) | " |
1 | 0 | 1 | 0 | 0 | 1 | 0 | E (25H) | " |
0 | 1 | 1 | 0 | 0 | 1 | 0 | F (26H) | " |
1 | 1 | 1 | 0 | 0 | 1 | 1 | G (27H) | " |
0 | 0 | 0 | 1 | 0 | 1 | 1 | H (28H) | " |
1 | 0 | 0 | 1 | 0 | 1 | 0 | I (29H) | " |
0 | 1 | 0 | 1 | 0 | 1 | 0 | J (2AH) | " |
1 | 1 | 0 | 1 | 0 | 1 | 1 | K (2BH) | " |
0 | 0 | 1 | 1 | 0 | 1 | 0 | L (2CH) | " |
1 | 0 | 1 | 1 | 0 | 1 | 1 | M (2DH) | " |
0 | 1 | 1 | 1 | 0 | 1 | 1 | N (2EH) | " |
1 | 1 | 1 | 1 | 0 | 1 | 0 | O (2FH) | " |
0 | 0 | 0 | 0 | 1 | 1 | 1 | P (30H) | " |
1 | 0 | 0 | 0 | 1 | 1 | 0 | Q (31H) | " |
0 | 1 | 0 | 0 | 1 | 1 | 0 | R (32H) | " |
1 | 1 | 0 | 0 | 1 | 1 | 1 | S (33H) | " |
0 | 0 | 1 | 0 | 1 | 1 | 0 | T (34H) | " |
1 | 0 | 1 | 0 | 1 | 1 | 1 | U (35H) | " |
0 | 1 | 1 | 0 | 1 | 1 | 1 | V (36H) | " |
1 | 1 | 1 | 0 | 1 | 1 | 0 | W (37H) | " |
0 | 0 | 0 | 1 | 1 | 1 | 0 | X (38H) | " |
1 | 0 | 0 | 1 | 1 | 1 | 1 | Y (39H) | " |
0 | 1 | 0 | 1 | 1 | 1 | 1 | Z (3AH) | " |
1 | 1 | 0 | 1 | 1 | 1 | 0 | [ (3BH) | Специальный |
0 | 0 | 1 | 1 | 1 | 1 | 1 | \ (3DH) | Специальный |
1 | 0 | 1 | 1 | 1 | 1 | 0 | ] (3EH) | Специальный |
0 | 1 | 1 | 1 | 1 | 1 | 0 | ^ (3FH) | Разделитель полей |
1 | 1 | 1 | 1 | 1 | 1 | 1 | _ (40H) | Специальный |
4. Форматы записи дорожек |
Запись на дорожке начинается с серии нулей (сигналов "НИЗКОГО" уровня, а не символов), число которых бывает разным, но не менне шестнадцати. Этот форвард служит для синхронизации такта считывателя. Далее записывается информация в формате, в зависимости от номера дорожки, как показывает таблица:
Дорожка ј1 | НП | КФ | НПС | Имя | РП | Доп. данные | КП | LRC |
Дорожка ј2 | НП | НПС | РП | Доп. данные | КП | LRC |
Дорожка ј3 | подобно дорожкам 1 и 2. В большинстве случаев не используется. |
НП | Начало Последовательности |
КФ | Код Формата |
НПС | Номер Первичного Cчета (19 цифр макс) |
РП | Разделитель Полей |
Имя | (макс. 26 знаков) |
Доп. данные | дата истечения, код шифра и т. п. |
КП | Конец Последовательности |
LRC | Код контроля четности |
Формат кодирования по разным дорожкам и плотность записи различна и соответствует таблице:
Дорожка | Плотность | Формат | Кол-во символов |
1 | 210 bpi | букв-цифр | 79 |
2 | 75 bpi | BCD | 40 |
3 | 210 bpi | BCD | 107 |
Кодирование управляющих символов в соответствии со стандартом каждой дорожки.
Завершает запись дорожки такая же, как в начале, последовательность нулей.
5. Примеры записанного на карточках |
Номер на лицевой стороне карточки: 1111 2222 3333 4444
Срок действия до: 12 / 99
-=Mastercard=- Track 2 (BCD, 75 bpi)-> ;1111222233334444=99121010000000000000? Ttrack 1 (ALPHA, 210 bpi)-> %B1111222233334444^PUBLIC/JOHN? * примеч.: "101" встречается на большинстве провереных карточек, также как и "В".
-=VISA=- T2 (BCD,75 bpi)-> ;1111222233334444=9912101xxxxxxxxxxxxx? T1 (ALPHA,210 bpi)-> %B1111222233334444^PUBLIC/JOHN^9912101xxxxxxxxxxxxx? * примеч.: 101 и В см выше. Также, ххх разные от карте к карте, и могут означать закодировванный номер счета, в любом случае, я нашел 13 цифр номера счета.
-=Discover=- T2 (BCD,75 bpi)-> ;1111222233334444=991210100000? T1 (ALPHA,210 bpi)-> %B1111222233334444^PUBLIC/JOHN___^991210100000? * примеч.: "10100000" и "B" и иногда встречается "10110000".Подчерки после имени JOHN означают, что имя дополняется до 26 символов ПРОБЕЛАМИ.
-=US Sprint FON=- Номер карточки -> 111 222 3333 4444 Track 2 (BCD,75 bpi)-> ;xxxxxx11122233339==xxx4444xxxxxxxxxx=? Track 1 (ALPHA,210 bpi)-> %B^ /^^xxxxxxxxxxxxxxxxx? * такое впечатление, что 1 дорожка не используется.
-=Fleet Bank=- Номер карточки -> 111111 222 3333333 T2-> ;1111112223333333=9912120100000000xxxx? T1-> %B1111112223333333^PUBLIC/JOHN___^9912120100000000000000xxxx000000? * данные "xxxх" варьируют. это закодированое PIN смещение. Всегда 4 цифры (хммм...). "1201" всегда одни и те-же... Даже в карточках из разных банков.