深入理解7816(3)-----关于T=0】的更多相关文章

本文转载自:http://blog.sina.com.cn/s/blog_4df8400a0102vcyp.html 深入理解7816(3)-----关于T=0 卡片和终端之间的数据传输是通过命令响应的方式进行的,卡片只能被动地接收命令,并且给出响应.所有的命令都是以命令头开始,而该命令被完整地执行后(无论结果对错),必须以包含状态字(SW1 SW2)的响应结束.卡片和终端之间如何具体进行数据传输的,就依靠不同的通讯协议来实现,其中主要有T=0.T=1.T=CL.其中T=0和T=1适用于接触式卡…
本文转载自:http://blog.sina.com.cn/s/blog_4df8400a0102vcrk.html 深入理解7816(2)---关于ATR 智能卡(此处主要指接触式CPU卡)本身始终处于被动的状态,所以终端设备在和智能卡进行数据交互的时候,需要首先给智能卡发指令,智能卡才会对应地给出应答.而智能卡告诉终端的第一句话就是ATR,亦即“复位应答”. 想象一下,如果让你为智能卡设计一个通讯协议,该怎么设计? 因为ATR是智能卡上电后说的第一句话,所以一定要确保这句话被准确地接收.在设…
本文转载自:http://blog.sina.com.cn/s/blog_4df8400a0101gkss.html 深入理解7816(1)---- 关于F/D和etu 对于刚接触智能卡的工程师来说,在阅读7816-3规范的时候,常常被其中的一些术语迷惑,读起来会觉得有些别扭.尤其是在看到复位应答中的F和D设置以及对应的etu的时候,会觉得有些复杂和难以理解. 其实从本质上说7816-3定义了智能卡(这里指的是接触式CPU卡,对于逻辑加密卡以及非接触IC卡不在此列)和读写设备之间的通讯协议,说白…
如何理解Apache License, Version 2.0(整理) 问题: 最近看到apache发布了2.0版本的License.而且微软也以此发布了部分源代码.我对OpenSource不是特熟,粗略看了下,感觉不是很明白.不知道这样的license在实际中有什么用处.(要知道,遵守的人都清一色的乖,而违反的人肯定是各有各的门道).打个比方,我下载了apache的一个jar包,在我自己的盈利性公司的产品里用上了.我没有更改任何下载下来的东西,只是用了它.之后我可以发布我自己的新产品了.那么我…
卡片和终端之间的数据传输是通过命令响应的方式进行的,卡片只能被动地接收命令,并且给出响应.所有的命令都是以命令头开始,而该命令被完整地执行后(无论结果对错),必须以包含状态字(SW1 SW2)的响应结束.卡片和终端之间如何具体进行数据传输的,就依靠不同的通讯协议来实现,其中主要有T=0.T=1.T=CL.其中T=0和T=1适用于接触式卡片(7816),而T=CL适用于非接触式卡片(14443). T=0是按照单个字符的方式实现智能卡和终端数据传输的通讯协议,理解协议最好的方式就是尝试自己来设计协…
之前说过的T=0协议,基本上相当于是透明的数据,也就是说从应用的角度看,通过T=0传递的TPDU数据信息大都可以直接转换为对应的APD命令响应数据,“字节”是T=0协议最小的数据传输单元. 对于T=1协议而言,最小的数据传输单元是“数据块”,这个数据块由若干个字节组成,其中有些字节是必须的,有些字节是可选的.每个数据块最多可以包含多少个字节(也就是数据块的大小)可以通过三种途径确定: 1)ATR中对应协议T=1的专有接口字节指出: 2)使用默认的值: 3)在数据传输过程中协商. 一个数据块其实就…
对于刚接触智能卡的工程师来说,在阅读7816-3规范的时候,常常被其中的一些术语迷惑,读起来会觉得有些别扭.尤其是在看到复位应答中的F和D设置,以及对应的etu的时候,会觉得有些复杂和难以理解. 其实从本质上说,7816-3定义了智能卡(这里指的是接触式CPU卡,对于逻辑加密卡以及非接触IC卡不在此列)和读写设备之间的通讯协议,说白了就是数据位传输的格式. 如果学习或者接触过单片机,那么对于RS232一定不会陌生,它属于异步串行通讯接口(UART),通过RxD.TxD进行数据的收发,RS232曾…
0x00 前言 因为我是跟着视频操作的,这回真的没理解为什么定位到了这个存在漏洞的文件... /do/fujsarticle.php 因为没有前文,所以这里无法分析这个$FileName为什么可以$_GET传值,此处我只看结果. 后来看的时候发现可以逆推过来,应该是本来有哪个功能用到fujsarticle.php文件,这里就不纠结了. 0x01 操作 在包含全局配置文件前后输出一下这个变量$FileName. 可以看到文件包含后的变量被改写了,test.php写入成功.可以看到do文件夹下会生成…
刚开始接触CPU卡的时候,对于各种文件.应用的定义容易模糊不清,通常不能准确地界定什么是文件?什么是应用?DF和EF的区别真的就像计算机里的目录和文档那样吗?FID.AID.SFI这些概念都在什么时候派上用场?一个EF必须依存于某个DF吗?MF是必须存在的吗?脑海里会有无数个问号奔腾而来. 其实文件的本质就是一组一组的数据而已,对这些数据的操作(选择.读取.写入/更新)是通过特定的文件操作APDU命令来完成的.所以数据才是本真,文件只是表象.某一组数据该作为什么样的文件让外界来访问,是由卡片的C…
智能卡(此处主要指接触式CPU卡)本身始终处于被动的状态,所以终端设备在和智能卡进行数据交互的时候,需要首先给智能卡发指令,智能卡才会对应地给出应答.而智能卡告诉终端的第一句话就是ATR,亦即“复位应答”. 想象一下,如果让你为智能卡设计一个通讯协议,该怎么设计? 因为ATR是智能卡上电后说的第一句话,所以一定要确保这句话被准确地接收.在设计通讯协议的时候,有必要设计一个可以让收发双方进行“握手”的“同步头”,如果接收方能够正确解析同步头数据,那么双方就可以在默认的参数下正确地进行后续的通讯.A…
1 #!/usr/bin/env bash    此处为什么不是  #!/bin/bash  ? 考虑到程序的可移植性,env的作用就是为了找到正确的脚本解释器(这里就是bash),在不同的Linux系统上该解释器可能所处的位置不同 18 # This script runs the hadoop core commands. 19 20 bin=`which $0`                                  shell的默认赋值是字符串赋值, $0表示脚本本身的名字,w…
本文字数:3825字 预计阅读时间:20分钟 导读 http2.0是一种安全高效的下一代http传输协议.安全是因为http2.0建立在https协议的基础上,高效是因为它是通过二进制分帧来进行数据传输.正因为这些特性,http2.0协议也在被越来越多的网站支持.据统计,截止至2018年8月,已经有27.9%的网站支持http2.0. 本文将从概述.原理.实战及检测等方面来详细介绍http2.0,希望能够加深你的理解. 什么是http2.0协议? 在http2.0官网①的描述是: http/2…
应该这样来理解这个问题: 补0后的DFT(FFT是DFT的快速算法),实际上公式并没变,变化的只是频域项(如:补0前FFT计算得到的是m*2*pi/M处的频域值, 而补0后得到的是n*2*pi/N处的频域值), M为原DFT长度,N变成了补0后的长度.将(-pi,pi)从原来的M份变成了N份,如果将补0前后的这些频域值画在坐标上,其中m*2*pi/M和n*2*pi/N重合的部分,它所对应的频域值(变换后的值)是不变的,而在原来的M份里多了(N-M)份的分量,即在频域内多了(N-M)份插值,这样理…
一.索引的成员和元素初始化 1.1 原始初始化集合 Dictionary 1.2 键值初始化集合 Dictionary 1.3 运算符 $ 初始化集合 Dictionary 二.自动属性的初始化 一不小心发现 C# 已经到 6.0 了,现在项目中使用的还是 4.0,这节奏,完全跟不上啊! 虽然自己也没有使用过 6.0,既然看到了,就拿出来和园有分享一下. 看到了@dotnetgeek的评论,非常感谢,认为是给我这样浮躁的人善意的警告,不应该盲目跟风追新,应该老老实实把现在的搞清楚,万变不离其宗…
前段时间,项目要开发热力图插件,研究了heatmap.js,打算好好总结一下. 本文主要有以下几部分内容: 部分源码理解 如何迁移到v2.0 v2.0官方文档译文 关于heatmap.js介绍,请看这里: http://www.oschina.net/p/heatmap-js 目前,对于热力图的开发,百度.高德开发平台上使用的都是这款JS开源库.当然,现在还有我们公司:P 百度示例:http://developer.baidu.com/map/jsdemo.htm#c1_15 高德示例:http…
一.什么是空指针? 空指针 是一个特殊的指针值. 空指针 是指可以确保没有向任何一个对象的指针.通常使用宏定义 NULL 来表示空指针常量值. 空指针 确保它和任何非空指针进行比较都不会相等,因此经常作为函数发生异常时的返回值使用.另外,对于第 5 章的链表来说,也经常在数据的末尾放上一个空指针来提示:“请注意,后面已经没有元素了哦.” 在如今的操作系统下,应用程序一旦试图通过空指针引用对象,就会马上招致一个异常并且当前应用程序会被操作系统强制终止.因此,如果每次都使用 NULL 来初始化指针变…
理解完aop的名词解释,继续学习spring aop的工作原理. 首先明确aop到底是什么东西?又如何不违单一原则并实现交叉处理呢? 如果对它的认识只停留在面向切面编程,那就脏了.从oop(Object Oriented Programming)说起,oop引入封装,多态,继承等概念建立对象层次的结构,处理公共行为属性的集合.对于一个系统而言,需要把分散对象整合到一起的时候,oop就虚了,因为这样的需求已经在对象层次之上了.如订单模块,还款模块都需要User对象配合(当然不止于User对象完成的…
C# 5.0 搭载于.NET 4.5和VS2012之上. 同步操作既简单又方便,我们平时都用它.但是对于某些情况,使用同步代码会严重影响程序的可响应性,通常来说就是影响程序性能.这些情况下,我们通常是采用异步编程来完成功能,这在前面也多次提及了.异步编程的核心原理也就是使用多线程/线程池和委托来完成任务的异步执行和返回,只不过在每个新的C#版本中,微软都替我们完成了更多的事,使得程序模板越来越傻瓜化了. .NET Framework 提供以下两种执行 I/O 绑定和计算绑定异步操作的标准模式:1…
问题 G: 多少个0 时间限制: 1 Sec  内存限制: 128 MB提交: 192  解决: 40 题目描述 一个n*n的方格,每个格子中间有一个数字是2或者5,现在从方格的左上角走到右下角,每次只能选择向下或者向右移动一格两种移动方式,让所有经过的格子中的数字相乘,求使最后的结果中末尾处0的数字最少. 输入 第一行是一个正整数n(0<n<100). 接下来n行是一个n*n的矩阵. 输出 一个正整数m,表示最后的结果末尾处最少有x个0. 样例输入 4 2 5 2 5 5 2 5 2 2 5…
在KMP算法中有个数组,叫做前缀数组,也有的叫next数组. 每一个子串有一个固定的next数组,它记录着字符串匹配过程中失配情况下可以向前多跳几个字符. 当然它描述的也是子串的对称程度,程度越高,值越大,当然之前可能出现再匹配的机会就更大. 这个next数组的求法是KMP算法的关键,但不是很好理解.这个篇文章仅贡献给不喜欢看数学公式又想理解KMP算法的同学. 1.用一个例子来解释,下面是一个子串的next数组的值,可以看到这个子串的对称程度很高,所以next值都比较大. 位置i 0 1 2 3…
昨天晚上听别人谈起闭包这个东西,虽然对js有一点了解但却丝毫没有印象,今天也没什么事就顺便研究了一下满足好奇宝宝.整合于网上的理解,记录一下. 一.闭包的作用域 要理解闭包,首先必须理解Javascript特殊的变量作用域. 全局作用域 局部作用域 :一个 function 形成一个独立的作用域, 而且方法作用域还能够嵌套. 与别的语言不同的是: 花括号({})不能形成一个独立的作用域, 例如Java中的作用域. 下面我们举例说说作用域 var m = 1; function f(){ //这里…
C# 6.0 功能预览 (一) 一.索引的成员和元素初始化 1.1 原始初始化集合 Dictionary 1.2 键值初始化集合 Dictionary 1.3 运算符 $ 初始化集合 Dictionary 二.自动属性的初始化 一不小心发现 C# 已经到 6.0 了,现在项目中使用的还是 4.0,这节奏,完全跟不上啊! 虽然自己也没有使用过 6.0,既然看到了,就拿出来和园有分享一下. 看到了@dotnetgeek的评论,非常感谢,认为是给我这样浮躁的人善意的警告,不应该盲目跟风追新,应该老老实…
<?php $f = 0.58; var_dump(intval($f * 100)); //为啥输出57 ?> 首先我们要知道浮点数的表示(IEEE 754): 浮点数, 以64位的长度(双精度)为例, 会采用1位符号位(E), 11指数位(Q), 52位尾数(M)表示(一共64位). 符号位:最高位表示数据的正负,0表示正数,1表示负数. 指数位:表示数据以2为底的幂,指数采用偏移码表示 尾数:表示数据小数点后的有效数字. 这里的关键点就在于, 小数在二进制的表示, 关于小数如何用二进制表…
.NET Core 2.0的发布时间,.NET Core 2.0预览版及.NET Standard 2.0 Preview大概在5月中旬或下旬发布. .NET Core 2.0正式版本发布时间大约在Q3 2017发布,具体我估计大概在8月份左右.同时一起发布的也就是.NET Standard 2.0. Milestone Release Date .NET Core 2.0 Preview Q2 2017 .NET Standard 2.0 Preview Q2 2017 .NET Core 2…
本月14日,微软发布.NET Core 2.0 正式版,它的发布意味着.NET Core平台更加成熟,也预示其更美好的未来.本文将分析.NET Core 的特性以及未来发展方向,为开发人员选择在何种平台开发程序提供参考. .NET Core 2.0 是您的最好选择吗? 1..Net Core 2.0 特性 1.1 .NET Core平台是开源的 1.2 跨平台 1.3 灵活部署 1.4 模块化架构 1.5 命令行工具 1.6 云支持 2. .NET Core 后续发展路线图 2.1 已知主要版本…
03.NetCore2.0下Web应用之搭建最小框架 这里我们不使用VS2017或者CLI命令的方式创建Asp.Net Core 2.0网页应用程序,而是完全手工的一点点搭建一个Web框架,以便更好的理解Asp.Net Core 2.0网页应用程序的最小脉络框架.  ------------------------------------------------------------------------------------------------------------ 写在前面:这是…
  Vue是数据驱动的框架,在修改数据时,视图会进行更新.数据响应式系统使得状态管理变的简单直接,在开发过程中减少与DOM元素的接触.而深入学习其中的原理十分有必要,能够回避一些常见的问题,使开发变的更为高效. 一.实现简单的数据响应式系统   Vue使用观察者模式(又称发布-订阅模式)加数据劫持的方式实现数据响应式系统,劫持数据时使用 Object.defineProperty 方法将数据属性变成访问器属性.Object.defineProperty 是 ES5 中一个无法 shim 的特性,…
黑小子在土司公布了“PageAdmin cms getshell Oday”,并给出了一个漏 洞的利用EXP.经过危险漫步在虚拟机里测试,存在漏洞的是PageAdmin Cms的次最薪版本PageAdmm CmsV2.0,最新版本pageadmin v2.1 20110927不存在这个漏洞了.利用漏洞可以直接获得shell,危害还是很大的. 一.漏洞简介 PageAdmin Cms是集成内容发布.文章.产品.图片.招聘.留言.自定义模型.采集等功能于一体的企业级网站管理系统. 漏洞公布者黑小子已…
原文: Building C# 8.0 [译注:原文主标题如此,但内容大部分为新特性介绍,所以意译标题为 "C# 8.0 新特性"] C# 的下一个主要版本是 8.0.我们已经为它工作了很长一段时间,即使我们构建并发布了次要版本 C# 7.1, 7.2 和 7.3,我仍然对 8.0 将带来的新特性感到非常兴奋. 目前的计划是 C# 8.0 将与 .NET Core 3.0 同时发布.然而,随着我们正在开发的 Visual Studio 2019 的预览版,这些特性将开始活跃起来.当这些…
NET Core 2.0的发布时间,.NET Core 2.0预览版及.NET Standard 2.0 Preview大概在5月中旬或下旬发布. .NET Core 2.0正式版本发布时间大约在Q3 2017发布,具体我估计大概在8月份左右.同时一起发布的也就是.NET Standard 2.0. Milestone Release Date .NET Core 2.0 Preview Q2 2017 .NET Standard 2.0 Preview Q2 2017 .NET Core 2.…