CPU卡发卡步骤

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, Exp 阅读详情

这几条为设备开发做了一个CPU卡发卡工具,发卡步骤挺繁琐的,记录一下。。。

发卡之前最好先让卡片重新上电复位一下,以防出现一些奇怪问题,比如16K的卡我建立8K的目录会提示空间不足或创建目录后进入提示权限不足。。。

结果浪费了不少时间,还去查如何查询CPU卡存储量的命令。。。

步入正题:

1、复位后默认会进入标识为3F00的MF目录,先进行外部认证,

这块看http://blog.youkuaiyun.com/xinxinsky/article/details/52288859。

2、删除MF目录下所有文件,MF目录本身没找到删除命令,所以MF的目录名不知如何更改。。。

命令:800E000000

3、创建密钥文件,我设置文件大小为128个字节,短文件标识01,增加密钥权限为0x0E,

命令:80E00000073F0080010EFFFF

4、写入外部认证密钥记录, 使用权:F0, 密钥:494E53542D57676A, 更改权:FE, 后续状态:FF, 错误计数器:77

命令:80D401000D39F0FEFF77494E53542D57676A

5、建立基本信息文件,文件标识符 0xEF01, 二进制文件: 大小:42, 读权限:F0, 写权限:0E, 文件密钥标识:[0x80]文件不支持带线路保护读

命令:80E0EF010728002AF00EFF80

6、选择刚才创建的文件0xEF01,数据手册中说创建目录与文件后是不会自动选择的,但是实际测试时貌似可以,但数据手册说不可以,

那么就根据手册来。

命令:00A4000002EF0100

7、写二进制文件,具体数据过敏,不列出,直接写即可,没难点

8、建立基本目录文件,这个不是目录,不是目录,不是目录,是一个变长记录文件,

变长记录文件: 大小:36, 读权限:F0, 写权限:0E, 文件密钥标识:[0x80]文件不支持带线路保护读

变长记录文件是TLV格式存入的,要注意,否则会提示格式错误

命令:80E0EF02072C0024F00EFF80

9、选择该目录文件,并写入TLV记录数据,不赘述了。

10、创建应用目录,这个是目录了,文件标识:ADF1,名DDF01,大小9000,创建删除权限为0x0E

命令:80E0ADF10D3823280E0E95FFFF4444463031

11、进入该目录 00A4000002ADF100

12、创建该目录下的密钥 大小:128, 文件短标识:01, 增加权限:0E

命令:80E00000073F0080010EFFFF

13、写入外部认证密钥记录: 使用权:F0, 密钥:12345678FFFFFFFF, 更改权:FE, 后续状态:FF, 错误计数器:77

命令:80D401010D39F0FEFF7712345678FFFFFFFF

14、写入PIN密钥记录 口令密钥: 使用权:F0, 密钥:123456, 后续状态:11, 错误计数器: 55

命令:80D40102083AF0EF1155123456

剩下就是创建文件及写入文件了,没啥好说的,注意设设置好权限即可。

在读的时候注意选择密钥标识,本记录中ADF1目录下外部认证密钥标识为0x01,PIN密钥标识为0x02.


【FM1208 CPU卡发卡流程,圈存,消费,查余额】 本文档整理了完整的CPU卡发卡流程日志(MF 选择、外部认证、擦除、建 DF、写密钥、建钱包文件),并包含核心交易演示:圈存、查余额、消费、再查余额。 日志可以直接作为教程发布。 阅读详情

相关推荐

读写器APDU指令读写FM1208CPU卡

APDU指令读写FM1208CPU 卡

3911

复旦微电子CPU卡发卡流程

前言 指令列表 发卡 卡片擦除 目录文件及用户密钥的创建及写入 命令报文数据域 指令集列表 指令集说明 数据(二进制数据,记录数据)的写入 MF下05文件写入 EF下15文件写入 前言 近段时间一直在做CPU卡相关的应用,也知道简单的去操作CPU卡相关数据,但是并没有真正深入去了解CPU卡相关的东西;近期搜集了部分资料,并仔细阅读了pboc3.0规范及复旦FM1208技术...

一行Java的博客 1万+

CPU卡详细交易最全的指令流程

CPU卡详细交易最全的指令流程_包括发卡_冲费_消费_圈存_圈提_取现_修改透支_读余额

CPU卡文件系统

CPU卡其实跟我们接触的计算机一样,也有自己的文件系统,要做一个应用,其实就是规定在CPU卡上有哪些文件(在CPU卡初始化时,建立文件系统文件的格式),在哪个文件里面存储什么内容,比如做一个IC卡燃气预付费系统,就是规定卡上的某个文件代表用户购买了多少气,什么时间购买的等等,当然,CPU卡的文件系统的控制机制要复杂的多,有些文件是不能读取的(如密钥文件),有些文件是只能读,不能写,有些文件是可读可

red_sky_blue的专栏 1898

Dahua大华DH-ASR2Q1A-M门禁发卡器快速操作手册.pdf

Dahua大华DH-ASR2Q1A-M门禁发卡器快速操作手册.pdf

联想X3650M5服务器双模式切换实战:UEFI与Legacy BIOS如何选择?

本文深入探讨了联想X3650 M5服务器在UEFI与Legacy BIOS启动模式间的选择策略。文章从技术原理、决策矩阵、实战切换步骤及后期验证等方面,为企业IT管理员提供了基于操作系统兼容性、存储架构、安全合规与运维习惯的完整决策框架,帮助其在数据中心硬件生命周期管理中做出明智选择。

weixin_29207533的博客 281

CPU卡发卡总结(一)

概述:CPU卡包含一个微处理器,其功能相当于一台微型计算机。CPU卡内集成电路中包括中央处理器(CPU)、只读存储器(ROM)、随机存储器(RAM)、电可擦除可编程只读存储器(EEPROM)等。  使用FMCOS,由传输管理、文件管理、安全体系、命令解释四个功能模块组成。 传输管理:监督卡与终端之间的通信,保证数据正确地传输。 文件管理:区别于其他卡按区块存储数据的方式。CPU卡将用户数据以

redumbrella的专栏 9676

Python主要智能优化算法库汇总

最近几年简单浏览和对比了一些智能算法的库。现将各种库的主要信息、相关优缺点简单整理如下,各位同学可根据自己的需求和喜好进行选择。 文章目录1、DEAP2、mealpy3、scikit-opt (国产良心)4、Geat2(国产用心)5、pygmo26、pyswarms7、SciPy(想不到吧)小结 1、DEAP 项目地址:https://github.com/DEAP/deap 安装: pip install deap 优点: 起点高,发表在Journal of Machine Learning Rese

半个冯博士 2万+

CPU卡发卡过程中应当注意的问题(转)

1摘要           构建IC卡应用系统过程中,如何定义卡中的数据信息(相对逻辑加密卡)或卡中的应用类型及其数据信息(相对CPU卡)及将数据信息写入卡中,以便应用于系统中进行交易是一个重要环节。这一环节在业界通常称为卡片个人化。卡片个人化既可以在专门的设备机器上进行,以便于对大批量的CPU卡进行个人化;也可以在PC机上通过连接IC卡读写器进行,以便于对小批量的卡片进行个化。不管硬件设备如

Tiu_Tiu的专栏 1818

ubuntu18.04 升级Ubuntu 20.04

Ubuntu 18.04升级20.04指南:首先备份重要数据,更新当前系统并检查新版本可用性(sudo do-release-upgrade -c)。确认升级后执行sudo do-release-upgrade,按提示完成操作。升级过程需耐心等待,完成后重启系统。注意:升级前务必备份数据,确保系统为最新版本,以降低风险。升级后即可使用Ubuntu 20.04系统。

https://ophome.blog.youkuaiyun.com,在IT行业有多年的工作经验,尤其是在Python、Linux、负载均衡、Nginx和服务器运维等领域。 1058

UE5实战技巧:TextRender高效集成中文字体与材质优化

本文针对UE5中TextRender组件显示中文的常见问题,提供了一套完整的实战解决方案。详细讲解了如何通过手动创建字体资产、精准控制字符集来优化性能,并重点介绍了通过调整材质中的Lerp节点参数(如设为-85, 92)来解决中文字体显示残缺和边缘模糊等核心难题,帮助开发者实现高效且美观的中文文本渲染。

weixin_28040125的博客 380

CPU卡调试与发卡总结

复旦的CPU卡调试与发卡总结

WSQ123的博客 1616

视觉提示学习(Prompt Learning):CV领域的GPT时刻?

视觉提示学习(Prompt Learning):CV领域的GPT时刻? ,人工智能,计算机视觉,大模型,AI,在人工智能技术不断演进的今天,计算机视觉(Computer Vision,CV)作为人工智能领域的重要分支,始终致力于让机器 “看懂” 世界。从早期基于传统特征工程的图像识别方法,到深度学习时代卷积神经网络(Convolutional Neural Networks,CNN)的崛起,CV 领域经历了多次重大变革。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 4万+

CPU卡发卡总结

概述:CPU卡包含一个微处理器,其功能相当于一台微型计算机。CPU卡内集成电路中包括中央处理器(CPU)、只读存储器(ROM)、随机存储器(RAM)、电可擦除可编程只读存储器(EEPROM)等。  使用FMCOS,由传输管理、文件管理、安全体系、命令解释四个功能模块组成。 传输管理:监督卡与终端之间的通信,保证数据正确地传输。 文件管理:区别于其他卡按区块存储数据的方式。CPU卡

fayeyiwang的专栏 8273

Python实现稳态传热传质的偏微分方程求解

通过这种方法,我们可以求解更复杂的传热传质问题,并对系统的温度和浓度分布进行分析和优化。稳态传热传质是一个重要的工程问题,涉及到物质在空间中的分布以及热量和质量的传递。每次迭代中,我们使用上一次迭代的温度值来计算下一次迭代的温度值。该图显示了平板内部各点的温度分布,其中中心温度为T1,边界温度为T2。接下来,我们创建一个N x N的温度矩阵,并将边界条件初始化为边界温度T2。假设我们有一个矩形平板,其中心温度为T1,四个边界温度为T2。假设平板的长度为L,宽度为W,中心温度为T1,边界温度为T2。

HackDashX的博客 308

YOLOv8改进策略【卷积层】| ECCV-2024 小波卷积WTConv 增大感受野,降低参数量计算量,独家创新助力涨点

本文记录的是利用模块优化的目标检测网络模型。的目的是在不出现过参数化的情况下有效地增加卷积的感受野,从而解决了在感受野扩展中的参数膨胀问题。本文将其加入到深度可分离卷积中,有效降低模型参数量和计算量,并二次创新C2f,使模块更好地捕捉低频特征,增强网络性能。Wavelet Convolutions for Large Receptive Fields小波卷积及其改进的实现代码如下: 四、创新模块 4.1 改进点1⭐ 模块改进方法:加入(第五节讲解添加步骤)。添加后如下:模块改进方法:基于的(第五节讲解添加

Limiiiing的博客 1092

CPU卡开发指南(五)发卡流程

CPU卡发卡流程 前言 本人要学习一个新东西最好的方法是是需要知道到底该怎么做,然后回过头去看理论会理解的比较快, 本章主要是对复旦微电子CPU卡COSFMCOS 2_0用户手册里的内容的个人理解。具体的cos命令参考CPU卡开发指南(二)基本指令,本章不重复阐述。 发卡流程 一般地,卡片供应商提供卡片时,已经对卡片进行过初始化(主要用于对卡片进行测试),亦即卡片上已经建立了主文件(MF)...

爬行的菜鸟的博客 2521

用 deepseek 写小说(通用版提示词模板)

#Initialization:作为[Role],在[Goals]下,回顾你的[Skill],严格遵守[Constraints],5.第五步:人物大纲,给小说里的每个人物撰写背景故事,深挖人物过去的经历,原生家庭,住所:一栋位于市郊的房子,有三个卧室,房龄 10 年,厨房很大,当中有一个鸟式大理石。示例 2.戈德里洛克先去了熊老爹的工作坊,尝试用大纲法写作,却发现这种方法无聊透顶,1.第一步:一句话概括,一句话概述小说内容,主要包含小说癸型,主角,以及故事中需要。大灰狼的暴行彻底激怒了戈德里洛克,

陈奕昆的博客 2969

CPU发卡注意问题

构建RFID/xinpin/zhinenka/' target='_blank'>IC卡应用系统过程中,如何定义卡中的数据信息(相对逻辑加密卡)或卡中的应用类型及其数据信息(相对CPU卡)及将数据信息写入卡中,以便应用于系统中进行交易是一个重要环节。这一环节在业界通常称为卡片个人化。卡片个人化既可以在专门的设备机器上进行,以便于对大批量的卡片进行个人化;也可以在PC机上通过连接IC卡读写器进行,以

red_sky_blue的专栏 934

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

非接触CPU卡外部认证步骤

最近做一款CPU卡发卡测试工具,由于好长时间没动CPU卡,再拿起来后发现都忘掉了, 外部认证这块还是记一下吧。 现在用的是复旦微的FM1216卡,之前用的是握奇的卡,先说下握奇的外部认证步骤     1、选择IC卡MF目录 00A4 0000 02 3F00 00     2、给IC卡发送命令取随机数  0084000008 获取8位随机数1     3、选择PSAM卡MF目录 00A4

路过的Blog 8961

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

CPU卡发卡程序设计过程中应当注意的几个问题

       构建IC卡应用系统过程中,如何定义卡中的数据信息(相对逻辑加密卡)或卡中的应用类型及其数据信息(相对CPU卡)及将数据信息写入卡中,以便应用于系统中进行交易是一个重要环节。这一环节在业界通常称为卡片个人化。卡片个人化既可以在专门的设备机器上进行,以便于对大批量的卡片进行个人化;也可以在PC机上通过连接IC卡读写器进行,以便于对小批量的卡片进行个化。不管硬件设备如何,都必须设计一套程序

SunJerdege 1612

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

上一篇: 非接触CPU卡外部认证步骤
下一篇: Android4.4状态栏透明方法,与工具栏颜色一致
路过&
博客等级 码龄19年 126粉丝 91原创
评论 9
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值