Это мой код < /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
Попытка выполнить аутентификацию над моим чипом NFC для паспорта/идентификатора в Python ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение