• 银联卡中关于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

  • 相关阅读:
    Fetch the result from result set
    Variable shadowing
    What is Servlet Container
    What is a servletcontext
    Inner Class
    Java中HashMap和TreeMap的区别深入理解
    枚举类
    (转载) 安卓开发学习笔记
    【C和C++】停车场系统
    【算法】常用的排序方法
  • 原文地址:https://www.cnblogs.com/yanzi-meng/p/9720024.html
Copyright © 2020-2023  润新知