1.CPU卡发卡流程
2.dc_request 响应
3.dc_anticoll 防冲突
4.dc_select 选择
5.dc_pro_resethex 复位

6.数据加密码 利用复位返回的数据,加密要写到卡里面的数据
key memcpy(&Key[0], &recbuff[0], 8); memcpy(&Key[8], &recbuff[24], 8);
加密key获得ExpKey ExpandKey((unsigned char*)Key, ExpKey);
把要写到卡里面的数据按照每16字节,用ExpKey 进行加密,计算得到要加密后的数据

7.3DES并进行外部认证
获取随机数 \x00\x84\x00\x00\x08 返回8字节随机数
软件3DES 加密随机数 获取8字节加密数据 加密密钥16字节 \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF

\xFF\xFF\xFF\xFF\xFF
外部认证 \x00\x82\x00\x00\x08 + 8字节加密后的随机数

删除MF \x80\x0E\x00\x00\x00
选择主文件MF \x00\xA4\x00\x00\x02\x3F\0x00

8.创建密码文件并注入密码
建立key文件 \x80\xE0\x00\x00\x07\x3F\x00\x80\x00\xF0\xFF\xFF
写入00号主控密码 \x80\xD4\x01\x00\x15\x39\xF0\xF0\xAA\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF

\xFF\xFF
写入01号主控密码 \x80\xD4\x01\x01\x15\x39\xF0\xF0\x11\x55\x6D\x57\xAB\xAE\x5B\xFE\x1C\xBA\x76\x4E\xD3\x02\x9E\x9E

\xDF\xF7

9.建立005文件并选择005
建立二进制文件0005
memcpy(sendbuff, “\x80\xE0\x00\x05\x07\x28\x00\x20\xF0\x11\xFF\xFF”, clen);
//空间大小
sendbuff[6] = (Len >> 8);
sendbuff[7] = Len;

选择二进制文件0005 \x00\xA4\x00\x00\x02\x00\x05

10.写数据到卡
Pack = (Len / 0xb0);
Surplus = (Len % 0xb0);
for(i = 0; i < Pack; i++)
{
memset(sendbuff, ‘\0’, sizeof(sendbuff));
memcpy(sendbuff, “\x00\xD6\x00\x00\xb0”, clen);
//偏移位置
Pos = (0xb0 * i);
sendbuff[2] = (unsigned char)(Pos >> 8);
sendbuff[3] = (unsigned char)Pos;
memcpy(&sendbuff[clen], &Temp[i * 0xb0], 0xb0);
clen += 0xb0;
}
if(Surplus != 0)
{
memcpy(sendbuff, “\x00\xD6\x00\x00\xFF”, clen);
sendbuff[4] = (unsigned char)Surplus;
//偏移位置
Pos = (0xb0 * i);
sendbuff[2] = (unsigned char)(Pos >> 8);
sendbuff[3] = (unsigned char)Pos;
memcpy(&sendbuff[clen], &Temp[i * 0xb0], Surplus);
clen += 0xb0;
}

CPU卡的一个发卡详细过程相关推荐

  1. 公交行业CPU卡总结(发卡,消费,充值)

    公交行业CPU卡总结(发卡,消费,充值) 前言 CPU卡到底是个什么东西 CPU卡的一些基本知识 APDU命令 CPU卡的文件结构 CPU卡中的钱包类型及如何消费 电子钱包 电子现金 如何发卡(针对互 ...

  2. 门禁|梯控管理系统CPU卡读写器发卡器HX-WR03密码设置操作说明

    门禁|梯控管理系统CPU卡读写器发卡器HX-WR03是一款支持CPU卡读写.加密等功能读写设备,专用CPU卡门禁管理系统.CPU卡通道管理系统.CPU卡梯控管理系统发卡.加密等应用.本文将重点介绍门禁 ...

  3. 非接触式CPU卡的外部认证和内部认证过程

    注:转载自别人的博客,只作为笔记记忆使用,也可供大家参考 用户卡和机具进行双向认证 问题的提出: 1.传统的"对暗号" 经典片断: 问:天王盖地虎 答:宝塔镇河妖 互相握手,拥抱, ...

  4. 复旦FM17522芯片读写M1卡(S50/S70)、CPU卡要点摘录

    目录 概述 卡的存储结构/文件结构 M1卡存储结构 复旦CPU卡的文件结构 卡的权限管理方式 M1卡控制字 CPU卡安全状态寄存器 卡的认证 M1卡的三次互相认证 复旦CPU卡的外部认证和内部认证 机 ...

  5. 【转】CPU卡知识入门教程

    原文:http://solution.rfidworld.com.cn/2012_07/ca29975245fe241d.html 绪言:  说起CPU卡,人们肯定不禁要问,什么是CPU卡,CPU卡长 ...

  6. CPU卡技术学习笔记1

    COS(Chip Operating System片内操作系统) COS 出现背景 随着IC卡从简单的同步卡发展到异步卡,从简单的EPROM卡发展到内带微处理器的智能卡(又称CPU卡),对IC卡的各种 ...

  7. 复旦FM1208 CPU卡调试

     原帖:http://www.itgo.me/a/x8645961561392057307/FM1208%E3%80%82 CPU卡内部自带COS,有严格的密钥管理系统.相比M1来说,要复杂的多.我用 ...

  8. 复旦FM1208 CPU卡调试(转)

    CPU卡内部自带COS,有严格的密钥管理系统.相比M1来说,要复杂的多.我用的是复旦微电子的FM1208 CPU卡,读卡芯片用的是FM1702.FM1702有并口和SPI接口两种方式.NXP的RC50 ...

  9. 智能门锁中CPU卡加密

    CPU卡中的双向认证的实现 实体:CPU卡 机具 CPU卡中存放一个密钥 机具中存放和CPU卡相同的密钥 CPU卡外部认证步骤: 1.CPU卡产生一个8字节随机数送给外部程序,CPU卡临时保存随机数在 ...

最新文章

  1. windows/linux计算文件 MD5值
  2. asp.net Web API 身份验证 不记名令牌验证 Bearer Token Authentication 简单实现
  3. python 格式化方法 从其他信息构建字符串
  4. Linux更改显示管理器,聊聊Linux操作系统中的显示管理器及如何更换
  5. C++之RAII机制
  6. sony z2 android 5.0,索尼Xperia Z2 5.0 root教程_索尼Z2获取5.0系统的root
  7. leetcode 1209 python
  8. 95-280-035-源码-资源管理-计算资源管理-TaskSlot
  9. 学习OpenCV——SVM 手写数字检测
  10. java分布式_学习分布式无从入手?阿里Java架构师分享分布式架构必读书籍
  11. VSC/SMC(二)——基于趋近律的滑模鲁棒控制(白嫖程序模型)
  12. 医疗器械信息系统分析
  13. 面试题53:vue数据的双向绑定原理(如何实现vue的双向绑定)
  14. 用Python多线程抓取并验证代理(转)
  15. 云数智驱动数据高速增长,浪潮存储提供EB级容量扩展
  16. java 创建用户界面_建立图形用户界面 JAVA实验
  17. FacesServlet (Java EEWTP/JSF问题的解决--java.lang.ClassNotFoundException: javax.faces.webapp.FacesServlet
  18. ArcGIS数据降雨量插值
  19. 2022-2028年中国移动电商行业深度调研及投资前景预测报告
  20. 金九银十北漂记第2篇:《Java程序员面试宝典》读书笔记

热门文章

  1. adjacency list(邻接表)神物
  2. KSO-纯CSS全屏图片,全屏背景图,自适应
  3. 搜索引擎蜘蛛IIS日志200、304、404 含义
  4. 如何将自己的电脑变成WiFi热点
  5. Linux期末考试必考内容,linux期末考试
  6. 关于页面请求发起后,通过F12查看到,被挂起页面中stalled花费很长时间问题的追查...
  7. 微信小程序毕业设计 基于javaweb后台网上书店图书商城小程序系统毕业设计
  8. 美团红包变成了3元红包的原因
  9. 降低芯片设计创新门槛——从互联网成功经验看开源芯片生态发展
  10. 6-1 调用函数打印闰年 (15 分)