ANSI X9.8标准 PIN xor PAN获取PIN BlOCK
来源:互联网 发布:js上传图片本地预览 编辑:程序博客网 时间:2024/05/16 16:16
转自 http://blog.sina.com.cn/s/blog_6dee445401011nsq.html
之前看到几篇介绍,把ANSI说成16个字节,真心扯淡,各种误人子弟,真正的ANSI算法其实是8个字节,具体格式如下:
(1) ANSI X9.8 Format(不带主账号信息)
PIN(个人识别码 Personal Identity Number)总共有8个byte长度,分为两个部分;(类似数据包的格式)
1:Byte1 记录PIN的长度
2:Byte2-Byte8 6-12位(字符)PIN(每个字符占4个BIT,不足8位右补F)
例如:明文PIN为 123456,
则PIN BLOCK为 0x06 0x12 0x34 0x56 0xFF 0xFF 0xFF 0xFF
0x06记录了PIN的长度为6,后边不足16位均以F补齐,然后转换为BCD码(BCD码为8位二进制数为一个单元,也就是一个Byte的大小也是一个十六进制数HEX的占用长度)。
(2)ANSI X9.8 Format(带主帐号信息)
PIN BLOCK 格式:等于 PIN 按位异或主帐号
PIN 格式:(与1中的格式类似)
Byte 1 PIN的长度
Byte 2 – Byte 3/4/5/6/7 4--12个PIN(每个PIN占4个BIT)
Byte4/5/6/7/8 – Byte 8 FILLER “F” (每个“F“占4个BIT)
PAN(主帐号 Primary Account Number)同样包含8个byte,格式如下:
Byte 1 — Byte 2 0x00 0x00
Byte 3 — Byte 8 12个主帐号字符(最后一位为校验位)
12位字符主帐号的取法:取主帐号的右12位(不包括最右边的校验位),不足12位左补“0X00”。
例子:
明文 PIN:123456,
主帐号 PAN:123456789012345678
截取下的主帐号为:678901234567 (最后一位校验位8的前12位字符为截取的主帐号)
则用于PIN加密的主帐号为:0x00 0x00 0x67 0x89 0x01 0x23 0x45 0x67
则 PIN BLOCK (PIN按位异或主帐号PAN)
即是为:
异或上:
结果为:
算法源码:(包含一个工具类Util和一个转换类ANSIFormat.java)
Util.java
package CodeApe;
public class Util {
}
ANSIFormat.java
package CodeApe;
import java.io.ObjectInputStream.GetField;
import javax.annotation.processing.Processor;
import CodeApe.Util;
public class ANSIFormat {
test.java(测试类)
package CodeApe;
public class test {
}
效果图: - -!
- ANSI X9.8标准 PIN xor PAN获取PIN BlOCK
- ANSI X9.8标准 PIN xor PAN获取PIN BlOCK
- ANSI X9.8标准 PIN xor PAN获取PIN BlOCK
- PIN BLOCK
- pin
- 使用ANSI x9.8手工异或得到结果并使用工具将其和PIN密匙进行加密(加密算法为3DES)
- ANSI X9.8
- ANSI X9.8
- ANSI x9.8计算PinBlock
- ANSI X9.8 计算PinBlock
- 获取pin支持的媒体类型
- 从摄像头静态pin获取图像
- Pin Connections
- PIN初探
- pin 回顾
- pin技巧
- PIN PUK1
- PIN学习
- Android使用Fresco-加载图片基础[详细图解Fresco的使用]
- UITextView的placehoder背景文字实现带并限制文字字数
- wait(), notify(),sleep()详解
- 加密、数字摘要、数字证书、SSL、HTTPS及SSH免密登录
- hdu 4165 Pills
- ANSI X9.8标准 PIN xor PAN获取PIN BlOCK
- 抛出异常与栈展开(stack unwinding)
- JAVA IO与NIO优劣浅析
- MySQL分页性能优化
- gis api for js 框选区域取面积 以及 取重叠区域面积
- abap 弹出对话框函数POPUP_GET_VALUES的使用方法
- ios: push viewcontroller 时出现Presenting view controllers on detached view controllers is discouraged
- echarts 饼图 labelLine
- fcntl.h与unistd.h头文件