在金融行业中,经常会用到8583报文,那么到底什么是8583报文呢?

8583是这样的,我举一个简单的例子

以64个域的报文来举例
域是什么我也说不清楚,我来举个例子
你可以把它想象为医院放药的抽屉
一个抽屉预先定义好要放什么东西,比如伟哥,或者感冒冲剂
一般情况下定义放伟哥的抽屉最好永远放伟哥,不要放别的东西
当然你也可以放板蓝根,但这样的话容易出错,也不太规范。
数量是这么规定的,有三种情况:
首先是定量,也就是说定义好这个抽屉放30瓶伟哥,就放30瓶
一瓶也不能多,一瓶也不能少。
其次是LLVAR,也就是说用1位字节定义数量,比如0x12表示里头
放12瓶,当然你也可以理解为16+2=18瓶。但要是0x12表示12,那0x13就等于13,不要0x12=12 ,0x13=19
最后是LLLVAR,是2位字节表示数量,比如 0x01,0x04 = 104

域也就是这样的,一共有64个域,每个域预先定义了内容和长度

有一个叫做BITMAP的,也就是位图,定义了一个数据包里包含
了几个域。举个例子
20 00 38 00 00 00 00 34 
你把它解开,排列一下
20 = 0010 0000
00 = 0000 0000
38 = 0011 1000 
依次类推,得到一串数字
0010 0000 0000 0000 0011 1000 0000 0000 0000 0000 0000 0000 0000 0000 0011 0100
然后从左到右数一下里头含有1的是那几位,上面的例子我们得到
3 19 20 21 59 60 62 ,这几位含有1。也就是说接下来的报文包含有
这几个域。

好了说了那么多,我们来做一个简单的例子
比如消费交易,需要上送交易类型,卡号等等,定义如下
卡号 第2域 LLVAR BCD 5309987876545342
交易类型 第3域 长度6 BCD 900000 
金额 第4域 长度12 BCD 100分
时间 第7域 长度8 BCD 20030802
2磁道信息 第35域 LLVAR ASCII 123456 
3磁道信息 第36域 LLLVAR BCD 123456001
商户号 第41域 LLVAR ASCII 98765432

好了我们现在开始打包
首先按照长度和类型把上面的数据处理一下
卡号 165309987876545342
交易类型 900000
金额 000000000100
时间 20030802
2磁道 06313233343536
3磁道 0009123456001
商户号 083938373635343332

接下来我们按照域信息生成位图
因为有第2域,所以第二个位置是1,由第三域,所以第三个位置
是1,。。。
依此类推得到一串数字
0111 0010 0000 0000 0000 0000 0000 0000 0011 0000 1000 0000 0000 0000 0000 0000
转换过来,就是
72 00 00 00 30 80 00 00 这个就是BITMAP了
然后把上面的数据按照BITMAP+每个域的内容,依次排列
就得到这个包的内容了
7200000030800000165309987876545342900000000000000100
20030802063132333435360009123456001083938373635343332
前头再加上TPDU和MSGID就是最后的数据包

很简单吧,解包也一样的。

8583报文格式介绍相关推荐

  1. IPv4和IPv6报文格式介绍和对比

    IPv4和IPv6报文介绍和对比 IPv4数据报 IPv4报文详解 IPv6数据报 IPv6报文详解 扩展头部详解 IPv4和IPv6报文详细对比 IPv4数据报 IPv4报文详解 版本Version ...

  2. 银联8583报文规范详解

    银联8583报文规范详解 自己的理解 转载的内容 自己的理解 转载的内容 以下来自转载地址 https://www.jianshu.com/p/203ed7f632cf 一.什么是8583报文规范? ...

  3. ISO8583报文格式分析

    直接上例子.一段8583报文. "02 00 70 20 00 00 20 C0 82 00 19 06 20 51 32 00 00 00 02 61 20 60 00 00 00 00 ...

  4. 谈谈8583报文的使用及测试

    ISO8583报文在金融行业可谓是声名显赫,8583报文是一个国际标准的包格式,其重要性阿堂就不用多说了,网上有很多的介绍,不过对于一个从未接触过8383报文的新手来说,还是很有难度的.它主要是用来解 ...

  5. 8583报文详细分析

    不要以为我这篇文章是告诉你什么是8583,告诉你map的原理,然后分析各个域是什么意思,格式如何, 再有详细一点的甚至告诉你如何写程序等等. 不是, 之所以不写上面这些,基于两点: 1 太多的人写这些 ...

  6. DNS协议详解及报文格式分析

    https://blog.csdn.net/tianxuhong/article/details/74922454 目录 一. DNS协议理论知识 1.1. 域名结构 1.2. 域名服务器 1.3. ...

  7. icmp报文格式_IPV6报文格式和IPV4有什么区别?

    前言 RFC2460定义了IPv6数据报格式. 总体结构上,IPv6数据报格式与IPv4数据报格式是一样的,也是由IP报头和数据(在IPv6中称为有效载荷)这两个部分组成的. 但在IPv6数据报数据部 ...

  8. web网络和http协议(了解域名和网页,制作第一个网页,了解http协议,流程和请求报文格式)

    文章目录 web网络和http协议 了解域名 早期使用HOST文件解析域名 现在DNS(Domain Name system 域名系统) 域名的概述 域名空间结构 域名介绍 域名注册 域名注册步骤 网 ...

  9. ++实现 ipv6数据报_IPV6报文格式和IPV4有什么区别?

    前言 RFC2460定义了IPv6数据报格式. 总体结构上,IPv6数据报格式与IPv4数据报格式是一样的,也是由IP报头和数据(在IPv6中称为有效载荷)这两个部分组成的. 但在IPv6数据报数据部 ...

最新文章

  1. 利用Windows Server Backup备份数据进行域控裸机还原
  2. Python中的进程间通信
  3. Ihttphander获取session
  4. C++中如何定义动态数组
  5. 【Flink】Flink反压(背压)网络流控
  6. AttributeError: 'NoneType' object has no attribute 'append'
  7. 第 1 课:KNX 与 Arduino:硬件连接
  8. matlab做叠加定理仿真,实验一 仿真软件的使用与叠加原理的验证
  9. shotcut视频压缩
  10. 回顾一年的工作历程_回顾一年来的工作
  11. 这些专业是考研大户!
  12. html/css导入自己的字体样式
  13. Flask Web实战-新闻资讯项目
  14. 5GNR漫谈10:5G RF射频设计验证
  15. 医药保健行业crm系统有何特色
  16. 知易行难的GIS与BIM融合
  17. css 滤镜 filter: grayscale();
  18. Word 高质量转 PDF
  19. FONT face=Verdana再测文字/FONT 的问题
  20. matlab代码仿真qpsk星座图,信号调制与解调,用脚本文件代码不是simulink

热门文章

  1. 计算机怎样设置桌面照片,怎么把一张照片设置成适合自己电脑桌面的壁纸
  2. 用java编写圆锥_用java中的graphics画圆锥的代码
  3. 如何用计算机扫描图片变成文字,如何把文字图片或者扫描的文件变成word文档?详细步骤...
  4. 信贷风控评分卡模型(上)_Give Me Some Credit(技术实现过程)
  5. python判断是否为整数的函数_实现函数 isInteger(x) 来判断 x 是否是整数
  6. VBA-API:通过BEEP函数(扬声器)播放音乐
  7. 用turtle画各种各样的数学图形
  8. 深度学习 图像分割开源代码(附链接,超级全)
  9. 猴子选大王[加强版]
  10. 为啥女性洗澡都很慢,究竟在干啥?