银联卡中关于CVN/CVN2/ICVN的区别
银联China Union Pay,是中国唯一合法的卡组织机构,同时也是EMVCo成员。关于银联卡中CVN/CVN2/ICVN的区别,刚开始我自己不了解,但经过查找资料和请教其他人,对它们的概念也渐渐明朗起来,故整理记录下来,供有兴趣的人们也了解。
CVN,英文全称是Card Verification Number,卡片验证码/安全码。根据用途不同,CVN可以细分为CVN、CVN2、ICVN,其在卡片中存放位置略有不同。
| CVN |
CVN2 |
ICVN |
|
| 存储位置 | 磁条中磁道1和磁道2 | 打印在卡背面签名条上(7位,通常和卡号后四位一起打印) |
芯片中的磁道1和磁道2等效数据(TAG9F1F和TAG57) |
CVN:写在磁道1和磁道2的任意数据域中,适用于通过磁条界面进行的有卡交易;
CVN2:用于在网络/电话等渠道上完成的无卡支付交易场景中对卡片的合法性进行验证;
ICVN:用于替代写入芯片的磁道数据中的CVN,以防不法分子通过读取芯片磁道等效数据,获取真正的磁道数据,制卡伪磁卡。但对于复合卡,终端已不支持降级交易,所以我个人认为,此种设置已失去了原有的价值。
CVN值的计算步骤:
计算CVN时使用二个64位的验证密钥,在这里称为KeyA和KeyB。
1)计算CVN的数据源包括:主账号(PAN)、卡失效日期(YYMM)和服务码,从左至右顺序编排;
2)将上述数据源扩展成128位二进制数据,不足128位右补0;
3)将128位二进制数据分成两个64位的数据块,最左边的64位为Block1,最右边的64位为Block2;
4)使用KeyA对Block1进行加密;
5)将Block1的加密结果与Block2进行异或,使用KeyA对异或结果进行加密;
6)使用KeyB对上一步加密结果进行解密;
7)使用KeyA对上一步解密结果进行加密;
8)从左至右将加密结果中的数字(0-9)抽出,组成一组数字;
9)从左至右将加密结果中的字符(A-F)抽出,减10后将余数组成一组数字,排列在步骤8的数字之后
10)步骤9的左边第一组三位数即为CVN值。
注:
1、CVN2的计算方法与CVN的计算方法一致,但计算CVN时,有用到服务码,而计算CVN2,不需要用到服务码;
2、ICVN的计算方法和CVN的计算方法一致,但计算ICVN时,服务码为999;
3、尽管计算方法不一样,CVN2、ICVN的计算结果可能会与CVN相同,这是允许的。
--------------------- 本文来自 chong89125 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/chong89125/article/details/72918140?utm_source=copy
银联卡中关于CVN/CVN2/ICVN的区别的更多相关文章
- 如何使用银联卡充值美元到BTC-E以及比特币搬砖教程
1,名词解释 搬砖:就是在价格低的平台买入比特币,然后转移到价格高的平台卖出, 一般而言,BTC-E是国外三大比特币交易所中比特币单价最低的一个站,因为其需要用美元充值,相对不方便.之前国内比特币价格 ...
- github student pack中的digital ocean可以使用银联卡支付
申请了 github student pack却因为一直没有visita信用卡,而无法使用digital ocean的 $50,一直到今天,用中国银行借记卡成功支付. 方法是: (1)注册paypal ...
- 【记录】尝试用android-logging-log4j去实现log输出内容到sd卡中的文件的功能
[背景] 折腾: [记录]给Android中添加log日志输出到文件 期间,已经试了: [记录]尝试用android中microlog4android实现log输出到文件的功能 但是不好用. 然后就是 ...
- Android中使用SQLiteOpenHelper管理SD卡中的数据库
使用Android中自带的SQLiteOpenHelper可以完成数据库的创建与管理,但有两点局限: (1)数据库创建在内存卡中,大小受限,创建位置位于/data/data/应用程序名/databas ...
- 与众不同 windows phone (37) - 8.0 文件系统: StorageFolder, StorageFile, 通过 Uri 引用文件, 获取 SD 卡中的文件
[源码下载] 与众不同 windows phone (37) - 8.0 文件系统: StorageFolder, StorageFile, 通过 Uri 引用文件, 获取 SD 卡中的文件 作者:w ...
- Android--手持PDA读取SD卡中文件
近两年市场上很多Wince设备都开始转向Android操作系统,最近被迫使用Android开发PDA手持设备.主要功能是扫描登录,拣货,包装,发货几个功能.其中涉及到商品档的时候大概有700左右商品要 ...
- android 读取sd卡中的图片
一.获取读取SD卡的权限 <!--在SDCard中创建与删除文件权限 --> <uses-permission android:name="android.perm ...
- simtrace之探秘SIM卡中的世界
0×00 关于SIM卡 众所周知SIM卡是一张插在手机上的小卡,其全称为Subscriber Identity Module 客户识别模块.不过,这个世界上并没有多少人知道SIM卡中的操作系统是基于j ...
- 转-Android 之 使用File类在SD卡中读取数据文件
如果需要在程序中使用sdcard进行数据的存储,那么需要在AndroidMainfset.xml文件中 进行权限的配置: Java代码: <!-- 在sd中创建和删除文件的权限 --> ...
随机推荐
- [原]NTP时间服务器简单设置
====server edit /etc/ntp.conf 添加 server 127.127.1.0 fudge 127.127.1.0 stratum 1 fudge 127.127.1.0 ...
- 关于vb代码复制到其他地方出现乱码的问题
今天笔者在学习vb编程时,想将自己的一段测试代码记录到云笔记中,方便以后查阅,代码如下: 结果在复制到其他的地方的时候,均出现乱码的现象,主要是针对代码的中的中文,如下效果 Private Sub C ...
- linux 下修改键盘映射
参考文档 原因: 输入 键盘原本的 “\ |”,结果映射到 "< >",而 < 与 > 对应的键名分别是 less 与 greater 查看键名: xev ...
- 如何将sql查询出的结果,用符号隔开
晚饭过后,打开QQ圈子,发现QQ群里有人提问了一个问题↓ 数据表中有这样的数据 如何转换为 ,, , 知道写存储过程或者函数可以解决,但是想想能不能用一条sql语句解决...未果... 还是去搜索了下 ...
- .NET Core开发日志——HttpClientFactory
当需要向某特定URL地址发送HTTP请求并得到相应响应时,通常会用到HttpClient类.该类包含了众多有用的方法,可以满足绝大多数的需求.但是如果对其使用不当时,可能会出现意想不到的事情. 博客园 ...
- CCPC-Wannafly Winter Camp Day4 Div1 - 最小边覆盖 - [线段树]
题目链接:https://zhixincode.com/contest/18/problem/C?problem_id=261 样例输入 1 4 21 23 4 样例输出 1 Yes 样例输入 2 4 ...
- window.location.reload(false);window.location.reload(true);history.Go(0)区别
在日常工作中常用的页面刷新方式的区别: 1 window.location.reload(false); 先说说window.location.reload(false);当我们window.loc ...
- Exception 01 : org.hibernate.engine.jndi.JndiException: Error parsing JNDI name [foo]
异常名称 org.hibernate.engine.jndi.JndiException: Error parsing JNDI name [foo] 异常截屏 异常详细信息 org.hibernat ...
- 什么是restful api
https://blog.csdn.net/laotianv5/article/details/81634997 什么是Restful API Restful API 从字面就可以知道,他是rest式 ...
- 20165317Java实验三敏捷开发与XP实践
实验三 敏捷开发与XP实践实验报告 实验目的 安装 alibaba 插件,解决代码中的规范问题.再研究一下Code菜单,找出一项让自己感觉最好用的功能. 在码云上把自己的学习搭档加入自己的项目中,确认 ...