DESFire 的认证过程如下:

1.    CM:0A00
读卡器向卡片发送0A00(0A—AUTH,00-key no.)

2.    RE:AF ek(RndB)
卡片返回AF+DA22830A94D260EC,计算过程:卡片取随机数RndB=34B57355568DC23A,用主密钥key=00000000000000000000000000000000对RndB进行3DES加密得ek(RndB)=DA22830A94D260EC.

3.    CM:AF dk(RndA+RndB’)
发送指令AF+74F4AE777AA431E8B76A9BA260335F17,AF-认证指令。计算过程:用主密钥对ek(RndB)进行解密得到RndB=34B57355568DC23A,对RndB进行闭合字节左循环得到RndB’=B57355568DC23A34,取随机数RndA=0011223344556677,得到RndA+RndB’=0011223344556677B57355568DC23A34,用主密钥对RndA+RndB’进行3DES+CBC解密得到dk(RndA+RndB’)= 74F4AE777AA431E8B76A9BA260335F17.

4.    RE: 00 ek(RndA’)
卡片返回:00 F181F7326DCD86A6,00-状态字,表示操作成功。计算过程:卡片对dk(RndA+RndB’)进行加密得到RndA+RndB’,对RndB’进行闭合字节右循环验证是否等于RndB,若等于则卡片认证成功,并对RndA进行封闭字节左循环得到RndA’,用主密钥对其进行3DES加密得到ek(RndA’).
5.    验证RndA’闭合右循环后是否等于RndA。

notes:本文参考“http://blog.sina.com.cn/s/blog_9ed067ad01012db9.html”处学习得知。

DESFire 学习之AUTH相关推荐

  1. php lumen auth,学习 Lumen 用户认证 (一)

    好久没写 PHP 代码了,尤其是 Lumen,我是 Lumen 的忠实用户,自从面世开始,我就将 Lumen 作为我 API 的主要框架使用. 但说到 API,不得不说的一个概念:「前后端分离」,现在 ...

  2. laravel auth login 重定向自定义_Laravel学习之路(一):最简单的API 认证(Passport)实践...

    API 认证(Passport)简介 Laravel 通过传统的登录表单已经让用户认证变得很简单,但是 API 认证怎么实现?API 通常使用令牌(token)进行认证并且在请求之间不维护会话(Ses ...

  3. Java EE学习心得

    –Java EE学习心得   1.    称为编程专家的秘诀是: 思考-----编程--------思考------编程--.. 编程不能一步到位,不能一上来就编,必须先思考如何写,怎样写?然后再编程 ...

  4. Google Colab——用谷歌免费GPU跑你的深度学习代码

    Google Colab简介 Google Colaboratory是谷歌开放的一款研究工具,主要用于机器学习的开发和研究.这款工具现在可以免费使用,但是不是永久免费暂时还不确定.Google Col ...

  5. Splunk学习与实践

      一.  Splunk公司与产品 美国Splunk公司,成立于2004年,2012年纳斯达克上市,第一家大数据上市公司,荣获众多奖项和殊荣.总部位于美国旧金山,伦敦为国际总部,香港设有亚太支持中心, ...

  6. wpa_supplicant学习

    2019独角兽企业重金招聘Python工程师标准>>> interface  gtk  makefile  wrapper  buffer  methods 目录(?)[-] 本来以 ...

  7. Python学习day5作业-ATM和购物商城

    Python学习day5作业 Python学习day5作业 ATM和购物商城 作业需求 ATM: 指定最大透支额度 可取款 定期还款(每月指定日期还款,如15号) 可存款 定期出账单 支持多用户登陆, ...

  8. Spring Boot 实现通用 Auth 认证的 4 种方式

    欢迎关注方志朋的博客,回复"666"获面试宝典 文章介绍了spring-boot中实现通用auth的四种方式,包括 传统AOP.拦截器.参数解析器和过滤器,并提供了对应的实例代码, ...

  9. 【python教程入门学习】Django应用开发框架的优点和缺点!!

    Python是2020年第三大最受欢迎的编程语言.它是一种功能强大的,动态的,语法简化的编程语言,用于高级Web应用程序开发和机器学习应用程序.而且,如果您了解Python,那么您可能听说过Djang ...

最新文章

  1. 【控制】《多智能体系统的协同群集运动控制》陈杰老师-第4章-连通性保持下多移动机器人群集控制
  2. 干货 | 广电行业数字化时代的「数据破局」指南
  3. 讨论MySQL丢失数据的几种情况
  4. 朋友圈有趣的灵魂都去哪了?这几个优质公号给你答案
  5. TCP如何保障可靠性
  6. lombok链式调用_翻车!记一次使用 Lombok 造成的事故!
  7. Netty入门系列(2) --使用Netty解决粘包和拆包问题
  8. Java库 学习笔记 - POI 在Word文档中查找指定关键字并设置背景色
  9. python实现模拟登录云课堂智慧职教并获取课程信息(1)
  10. el-dialog 圆角 白边问题
  11. 使用IMS搭建LMS系统(Logistics Management System 物流管理信息系统)
  12. Python中的类、实例以及方法,MRO继承解析顺序以及Mixin类
  13. java isprime函数_翁恺老师零基础java课程函数章第一题分解质因数
  14. oracle查询半小时之内的记录
  15. 【网络经济与企业管理】选择题,错题
  16. 互联网晚报 | 9月25日 | 辉瑞公司CEO新冠检测再次呈阳性;​央视揭秘“羊了个羊”通关诈骗陷阱;特斯拉变相降价8000元?...
  17. linux 显卡驱动 960,【Ubuntu】Ubuntu16.04安装GTX960M显卡驱动
  18. MySQL 查询最好的前/后3条
  19. es6数组去重(连重复的对象也可以去掉)
  20. 企业架构框架主流工具比较

热门文章

  1. Linux系统破解root密码
  2. windows被迫重装系统| 数据恢复 | 启动盘 PE盘 | 批量软件安装
  3. 线性代数 --- 线性代数基本定理下(四个基本子空间两两正交且互为正交补)
  4. 精选案例集 | 实现网安人才培养,保障网络强国战略—赛宁实训靶场
  5. 指针 习题11-1 输出月份英文名
  6. 适用于ios5的应用_适用于设计人员和开发人员的10个很棒的iOS应用
  7. 大数据Hive(一):​​​​​​​Hive基本概念
  8. jQuery事件-鼠标事件
  9. 打击标题党,痛斥灌水文
  10. matlab在解线性方程组的应用,matlab解线性方程组线性方程组及MATLAB应用