Vì vậy, tôi có một thẻ thông minh được cung cấp bởi công ty trông giống như thẻ tín dụng có chip. Thẻ này đăng nhập vào một trang web sau khi thẻ được đưa vào đầu đọc thẻ.
Bây giờ tôi phải viết một chương trình bằng python có thể đọc thẻ và đăng nhập vào trang web đó bằng Requests
mô-đun. Tôi đã cố gắng tìm ra cách lấy dữ liệu xác thực này từ thẻ bằng tập lệnh python và sau đó sử dụng dữ liệu này nhưng tôi đã thành công một phần. Tôi đã cài đặt pyscard
:
from smartcard.System import readers
from smartcard.util import toHexString
r=readers()
print(r)
connection = r[0].createConnection()
connection.connect()
SELECT = [0xA0, 0x88, 0x00, 0x00] # CLA, INS, P1, P2
DF_TELECOM = [ 0x02, 0x7F, 0x10] # Lc, Data, Le
data, sw1, sw2 = connection.transmit( SELECT + DF_TELECOM )
Cho đến nay tôi có thể truyền dữ liệu và lấy một số dữ liệu từ thẻ. Tôi đã gửi lệnh 88 trong INS (Nguồn: ISO 7816) dành cho một số loại xác thực nội bộ (Tôi giả sử dữ liệu xác thực này được sử dụng để đăng nhập trên trang web) nhưng tôi nhận được phản hồi bên dưới:
data = []
sw1 = 110
sw2 = 00
Tôi không thể tìm thấy ý nghĩa của phản hồi này trong ISO 7816. Ai đó có thể cho tôi biết liệu tôi có phương pháp hay gợi ý phù hợp để tiếp tục từ đây không? Tóm lại, tôi muốn biết làm thế nào để đăng nhập vào trang web bằng kịch bản python và thẻ thông minh?