zoukankan      html  css  js  c++  java
  • 算法系列7《CVN》

    计算CVN时使用二个64位的验证密钥,KeyA和KeyB。

     

     

    1) 计算CVN 的数据源包括: 主账号(PAN)、卡失效期和服务代码,从左至右顺序编排。

    4123456789012345+8701+111

     

    2) 将上述数据源扩展成128 位二进制数据(不足128 位右补二进制0)。

    41234567890123458701111+000000000

     

    3) 将128 位二进制数据分成两个64 位的数据块。最左边的64 位为Block1,最右边的64 位为 Block2。

    KeyA=0123456789ABCDEF ,Block1=4123456789012345

     

    4) 使用KeyA 对Block1 进行加密。

    3DES_ENC(Block1, KEYA, ENCA)

    ENCA = B76ADDCE71CCC6BE

     

    5) 将Block1 的加密结果与Block2 进行异或。使用KeyA 对异或结果进行加密。

    Block2=8701111000000000

    ENCB=XOR(Block2, ENCA)

    ENCB=306BCCDE71CCC6BE

    3DES_ENC(ENCB, KEYA, ENCC)

    ENCC=BAE6746F6DE1F0E6

    KEYB=FEDCBA9876543210

     

    6) 使用KeyB 对加密结果进行解密。

    3DES_DE(ENCC, KEYB, ENCD)

    ENCD = B262ABCB9DE99A63

     

    7) 使用KeyA 对解密结果进行加密。

    3DES_ENC(ENCD, KEYA, ENCE)

    ENCE=8D5625FA78011A0C

     

    8) 从左至右将加密结果中的数字(0-9)抽出,组成一组数字。

    CCRSN=85625780110

     

    9) 从左至右将加密结果中的字符(A-F)抽出,减10 后将余数组成一组数字,排列在步骤(8) 的数字之后。

    CCRSA=DFAAC

    CCRSA-10=35002//每一位分别减10

    RST=85625780110 35002

     

    10)步骤(9)的左边第一组三位数即为CVN 值。

    CVN=856

     

    Meet so Meet. C plusplus I-PLUS....
  • 相关阅读:
    navicat连接虚拟机中mysql"Access denied for user'root'@'IP地址'"问题
    Centos6.4 + mysql-5.6.38-linux-glibc2.12-x86_64.tar 实现mysql主从复制
    三、mock测试技术
    二、数据加密
    一.unittest框架初识
    3.Allure报告
    2.pytest参数化
    1.pytest框架初识
    RabbitMQ 几种工作模式---(三) Publish/Subscribe
    RabbitMQ 几种工作模式---(二)work
  • 原文地址:https://www.cnblogs.com/iplus/p/4467120.html
Copyright © 2011-2022 走看看