在Android中,当读取MIFARE Classic卡片时,身份验证是使用MifareClassic.authenticateSectorWithKeyA (或authenticateSectorWithKeyB)方法执行的,但这些方法的参数keyA/keyB是纯文本。因此,黑客很容易获得密钥。
在进行身份验证时,有没有办法不直接使用明文密钥,而是将密钥存储在服务器中?然后,每次执行认证时,MIFARE Classic卡生成随机密钥,该随机密钥被传输到服务器,服务器使用该随机密钥和存储的认证密钥计算令牌,然后将该令牌传输到MIFARE Classic卡,在MIFARE Classic卡中验证该令牌,如果正确,则认证成功。
https://stackoverflow.com/questions/51392425
复制相似问题