CPU卡的一个发卡详细过程
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卡的一个发卡详细过程相关推荐
- 公交行业CPU卡总结(发卡,消费,充值)
公交行业CPU卡总结(发卡,消费,充值) 前言 CPU卡到底是个什么东西 CPU卡的一些基本知识 APDU命令 CPU卡的文件结构 CPU卡中的钱包类型及如何消费 电子钱包 电子现金 如何发卡(针对互 ...
- 门禁|梯控管理系统CPU卡读写器发卡器HX-WR03密码设置操作说明
门禁|梯控管理系统CPU卡读写器发卡器HX-WR03是一款支持CPU卡读写.加密等功能读写设备,专用CPU卡门禁管理系统.CPU卡通道管理系统.CPU卡梯控管理系统发卡.加密等应用.本文将重点介绍门禁 ...
- 非接触式CPU卡的外部认证和内部认证过程
注:转载自别人的博客,只作为笔记记忆使用,也可供大家参考 用户卡和机具进行双向认证 问题的提出: 1.传统的"对暗号" 经典片断: 问:天王盖地虎 答:宝塔镇河妖 互相握手,拥抱, ...
- 复旦FM17522芯片读写M1卡(S50/S70)、CPU卡要点摘录
目录 概述 卡的存储结构/文件结构 M1卡存储结构 复旦CPU卡的文件结构 卡的权限管理方式 M1卡控制字 CPU卡安全状态寄存器 卡的认证 M1卡的三次互相认证 复旦CPU卡的外部认证和内部认证 机 ...
- 【转】CPU卡知识入门教程
原文:http://solution.rfidworld.com.cn/2012_07/ca29975245fe241d.html 绪言: 说起CPU卡,人们肯定不禁要问,什么是CPU卡,CPU卡长 ...
- CPU卡技术学习笔记1
COS(Chip Operating System片内操作系统) COS 出现背景 随着IC卡从简单的同步卡发展到异步卡,从简单的EPROM卡发展到内带微处理器的智能卡(又称CPU卡),对IC卡的各种 ...
- 复旦FM1208 CPU卡调试
原帖:http://www.itgo.me/a/x8645961561392057307/FM1208%E3%80%82 CPU卡内部自带COS,有严格的密钥管理系统.相比M1来说,要复杂的多.我用 ...
- 复旦FM1208 CPU卡调试(转)
CPU卡内部自带COS,有严格的密钥管理系统.相比M1来说,要复杂的多.我用的是复旦微电子的FM1208 CPU卡,读卡芯片用的是FM1702.FM1702有并口和SPI接口两种方式.NXP的RC50 ...
- 智能门锁中CPU卡加密
CPU卡中的双向认证的实现 实体:CPU卡 机具 CPU卡中存放一个密钥 机具中存放和CPU卡相同的密钥 CPU卡外部认证步骤: 1.CPU卡产生一个8字节随机数送给外部程序,CPU卡临时保存随机数在 ...
最新文章
- windows/linux计算文件 MD5值
- asp.net Web API 身份验证 不记名令牌验证 Bearer Token Authentication 简单实现
- python 格式化方法 从其他信息构建字符串
- Linux更改显示管理器,聊聊Linux操作系统中的显示管理器及如何更换
- C++之RAII机制
- sony z2 android 5.0,索尼Xperia Z2 5.0 root教程_索尼Z2获取5.0系统的root
- leetcode 1209 python
- 95-280-035-源码-资源管理-计算资源管理-TaskSlot
- 学习OpenCV——SVM 手写数字检测
- java分布式_学习分布式无从入手?阿里Java架构师分享分布式架构必读书籍
- VSC/SMC(二)——基于趋近律的滑模鲁棒控制(白嫖程序模型)
- 医疗器械信息系统分析
- 面试题53:vue数据的双向绑定原理(如何实现vue的双向绑定)
- 用Python多线程抓取并验证代理(转)
- 云数智驱动数据高速增长,浪潮存储提供EB级容量扩展
- java 创建用户界面_建立图形用户界面 JAVA实验
- FacesServlet (Java EEWTP/JSF问题的解决--java.lang.ClassNotFoundException: javax.faces.webapp.FacesServlet
- ArcGIS数据降雨量插值
- 2022-2028年中国移动电商行业深度调研及投资前景预测报告
- 金九银十北漂记第2篇:《Java程序员面试宝典》读书笔记
热门文章
- adjacency list(邻接表)神物
- KSO-纯CSS全屏图片,全屏背景图,自适应
- 搜索引擎蜘蛛IIS日志200、304、404 含义
- 如何将自己的电脑变成WiFi热点
- Linux期末考试必考内容,linux期末考试
- 关于页面请求发起后,通过F12查看到,被挂起页面中stalled花费很长时间问题的追查...
- 微信小程序毕业设计 基于javaweb后台网上书店图书商城小程序系统毕业设计
- 美团红包变成了3元红包的原因
- 降低芯片设计创新门槛——从互联网成功经验看开源芯片生态发展
- 6-1 调用函数打印闰年 (15 分)