Попытка выполнить аутентификацию над моим чипом NFC для паспорта/идентификатора в PythonPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Попытка выполнить аутентификацию над моим чипом NFC для паспорта/идентификатора в Python

Сообщение Anonymous »

Это мой код < /p>
import hashlib
import binascii
from smartcard.System import readers
from smartcard.util import toHexString
from Crypto.Cipher import DES3
from Crypto.Random import get_random_bytes

def compute_sha1(data):
sha1 = hashlib.sha1()
sha1.update(data.encode('ascii'))
return sha1.digest()

def adjust_parity(key):
adjusted_key = bytearray(key)
for i in range(len(adjusted_key)):
byte = adjusted_key & 0xFE
parity = 0
for bit in range(1, 8):
parity ^= (byte >> bit) & 0x01
adjusted_key = byte | (parity ^ 0x01)
return bytes(adjusted_key)

def derive_keys(mrz_info):
mrz_key_seed = mrz_info
sha1_hash = compute_sha1(mrz_key_seed)
k_enc = adjust_parity(sha1_hash[:8] + sha1_hash[8:16])
k_mac = adjust_parity(sha1_hash[8:16] + sha1_hash[:8])
return k_enc, k_mac

def encrypt_3des_cbc(key, iv, data):
cipher = DES3.new(key, DES3.MODE_CBC, iv)
return cipher.encrypt(data)

def compute_mac(k_mac, data):
cipher = DES3.new(k_mac, DES3.MODE_CBC, iv=b'\x00' * 8)
padded_data = data + b'\x80' + b'\x00' * (7 - (len(data) % 8))
mac = cipher.encrypt(padded_data)[-8:]
return mac

def compute_check_digit(data):
weights = [7, 3, 1]
total = 0
for i, char in enumerate(data):
if char.isdigit():
value = int(char)
elif char == '
Каждая попытка работать с результатами паспорта в ответе 67 00, используя мой ACR122 USB NFC Reader. < /p>
Идея состоит в том, чтобы получить данные NFC (фото и т. Д.)>

Подробнее здесь: https://stackoverflow.com/questions/796 ... -in-python
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»