银联iso8583协议报文解析

news2024/11/27 17:58:04

 

最近在研究银联的ISO8583协议,涉及到报文这方面的东西,感觉挺多的,分享一下,或许对你有帮助。

ISO8583协议解决的核心问题:

  1.   明确了报文每个字段的数据类型,是数字还是字符,都能定义清楚
  2.  支持64或者128个字段,但是如果某个字段没用到,就不用传输,对于交易来说完全够用,同时还节省了带宽和流量。 
  3.  可以支持变长的字段

1,报文组成

2,报文相关知识

位:二进制中,一个0或1,表示位

Bcd码:四个位表示一个bcd码(可以理解成八进制数中1位)

字节:八个位表示个字节(可以理解成十六进制数中1位)

N..x 代表数字类型 x代表位数 ..代表变长,若x为技术,则自动补0,凑足一个bcd码

N4:4位定长数字

N6:6位定长数字

N..6:6位变长数字

AN..x AN代表数字或字母,用ANSCII码解析,;x代表位数; ..代表变长

AN4:4位定长数字或字符

AN6:6位定长数字或字符

AN..6:6位变长数字或字符

ANS 代表数字、字母或特殊字符,用ANSCII码解析

ANS4:4位定长数字或字符、特殊字符

ANS6:6位定长数字或字符、特殊字符

ANS..6:6位变长数字或字符、特殊字符

3,报文实例

01 14 60 00 03 30 00 61 31 00 31 34 56 02 00 70 24 06 C0 20 C0 9A 11 16 62 26 89 01 14 56 47 83 00 00 00 00 00 00 00 00 22 00 02 52 20 05 05 10 00 01 00 12 37 62 26 89 01 14 56 47 83 D2 00 52 01 12 71 81 19 00 00 00 31 32 33 34 35 36 37 38 31 32 33 34 35 36 37 38 39 30 31 32 33 34 35 38 34 30 16 EC 2F C3 2C D4 38 A8 26 00 00 00 00 00 00 00 01 45 9F 1A 02 08 40 9F 27 01 80 9A 03 23 08 28 9F 36 02 17 98 9C 01 00 9F 03 06 00 00 00 00 00 00 9F 26 08 3A 19 36 77 73 20 52 F6 9F 37 04 68 63 B7 37 9F 09 02 00 20 9F 41 04 00 00 02 52 9F 34 03 42 03 00 9F 02 06 00 00 00 00 00 22 9F 35 01 22 9F 10 13 07 01 01 03 A0 28 02 01 0A 01 00 00 00 00 00 0F F7 A0 AC 9F 33 03 E0 F8 C8 5F 2A 02 08 40 82 02 7C 00 9F 1E 08 30 57 30 33 32 32 36 39 95 05 00 C0 04 E0 00 84 08 A0 00 00 03 33 01 01 02 00 14 22 00 00 21 00 05 00 36 31 39 37 33 37 43 44 

4,报文解析结果

 5,Java代码解析如下,包含55域的解析结果

码字不易,记得点赞关注哟

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/940417.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ARMS 助力极氪提效服务应急响应,为安全出行保驾护航

作者:比扬 01 客户介绍与项目背景 浙江极氪智能科技有限公司于 2021 年 3 月成立,2021 年 4 月发布极氪品牌及旗下首款产品——极氪 001。极氪是一家以智能化、数字化、数据驱动的智能出行科技公司,秉承用户型企业理念,聚焦智能…

DNS指向别名还是IP

现在有一台服务器dbprod126,ip是172.22.100.4 现在有一个需求,需要在dns中对dbprod126建一个别名wondadb3r的记录,也就是ping wondadb3r的时候显示的是dbprod126的ip,目前有两​种方法,主要使用方法1指向别名&#xf…

matplotlib基础--2

5 图例 matplotlib中的图例是帮助观察者理解图像数据的重要工具。图列通常包含在图像中,用于解释不同的颜色、形状、标签和其它元素。 1)主要参数 当不设置图例的参数时,默认的图例是这样的。 x np.linspace(0,1,50) y1 np.sin(x*2*np.p…

【unity插件】使用BehaviorDesigner插件制作BOSS的AI行为树

文章目录 前言素材插件一、基础使用二、敌人物理攻击三、敌人面向玩家四、敌人法术攻击五、随机进行攻击六、敌人不同的阶段推荐学习视频源码完结 前言 Behavior Designer是一个行为树插件,是一款为了让策划,程序员,美术人员方便使用的可视化…

基于SSM技客户管理系统源码和论文

基于SSM技客户管理系统源码和论文079 开发工具:idea 数据库mysql5.7 数据库链接工具:navcat,小海豚等 技术:ssm 一、课题的背景和意义 1、课题目的 客户管理是每个企业中最重要的模块,对客户的分类管理有利于更有效地了解从…

RHCE——九、SELinux

SELinux 一、概念1、作用2、SELinux与传统的权限区别 二、SELinux工作原理1、名词解释主体(Subject)目标(Object)策略(Policy)安全上下文(Security Context) 2、文件安全上下文查看1…

java入门第三节

java入门第三节 一.什么是oop 1.pop与oop (1).面向过程编程:(POP:Procedure Oriented Programming) 1.步骤清晰简单,第一步做什么,第二步做什么,按照顺序; 2.代码线性&#xff0…

什么是 TEE

参考文献: Sabt M, Achemlal M, Bouabdallah A. Trusted execution environment: what it is, and what it is not[C]//2015 IEEE Trustcom/BigDataSE/Ispa. IEEE, 2015, 1: 57-64. “U.S. government protection profifile for separation kernels in environment…

svn软连接和文件忽略

软连接 1)TortoiseSVN->Properties->New->Externals->New 2)填入软连接信息 Local path: 写下软连接后的文件夹的名字 URL: 想要软连接的牡蛎->TortoiseSVN->Repo-browser 复制下填入 文件忽略 以空格隔开就行

CentOS 7 Nacos 设置开机自动重启

一、说明 Nacos如果是手动启动的话,在服务器宕机或者重启后,没有自动运行,影响很多业务系统,需要每次手动执行命令 startup.sh -m standalone,才能启动 Nacos 服务,不能像docker服务一样,使用 …

「Vue|网页开发|前端开发」01 快速入门:快速写一个Vue的HelloWorld项目

本文主要介绍如何用vue开发的标准化工具vue-cli快速搭建一个符合实际业务项目结构的hello world网页项目并理解vue的代码文件结构以及页面渲染流程。 文章目录 一、准备工作:安装node.js二、项目搭建创建项目目录全局安装vue-cli使用Webpack初始化项目启动项目学会…

Prometheus关于微服务的监控

在微服务架构下随着服务越来越多,定位问题也变得越来越复杂,因此监控服务的运行状态以及针对异常状态及时的发出告警也成为微服务治理不可或缺的一环。服务的监控主要有日志监控、调用链路监控、指标监控等几种类型方式,其中指标监控在整个微服务监控中比重最高,也是实际生…

支持库和应用条

每个Android新版本都会引入一些新特性,不过并不是每个人都能做到Android一推出新版本就升级到那个最新版本,实际上,大多数人都至少落后一个版本。而支持库允许在老版本的Android上使用新特性。 Andriod支持库提供了对Android老版本的向后兼容…

模块化与组件化:开发中的双剑合璧

引言:模块化与组件化的重要性 在现代软件开发中,随着项目规模的增长和技术的复杂性增加,如何有效地组织和管理代码变得越来越重要。模块化与组件化作为两种主要的代码组织方法,为开发者提供了有效的工具,帮助他们创建…

小白带你学习linux的LNMT和动静分离(三十九)

目录 一、LNMT 1、部署tomcat 2、部署nginx 3、部署Mariadb 4、配置Nginx 二、Nginx高级配置 1、location 2、rewirte 三、动静分离 1、修改nginx配置文件 2、重启服务!!! 一、LNMT L是linux,N是nginx ,M是…

8.28作业

定义一个基类 Animal&#xff0c;其中有一个虚函数 perform()&#xff0c;用于在子类中实现不同的表演行为。 #include <iostream>using namespace std; class Animal { public:Animal() {}virtual void perform(){} }; class Monkey:public Animal { public:Monkey() {…

普通制造型企业,如何成就“链主品牌

“链主品牌”通常掌握产业链主导地位&#xff0c;对于普通制造型企业看起来是遥不可及的事情&#xff0c;事实上并非如此。从洞察穿越周期的“链主品牌”规律来看&#xff0c;做螺丝起家的伍尔特、做宠物牵引绳的福莱希等小企业也可以成为“链主品牌”。另外&#xff0c;由于新…

如何用大模型解决产业场景实战问题?案例精讲教程来了!

科技爆炸&#xff0c;大模型赋能千行百业 生成式 AI 正以惊人的势头改变着我们的世界&#xff0c;新的浪潮席卷着全球各个行业&#xff0c;同时&#xff0c;也赋予企业前所未有的创新力量。大模型通过海量数据和复杂算法&#xff0c;刻画出AI世界的精妙法则&#xff0c;让企业…

【Android】TextView适配文本大小并保证中英文内容均在指定的UI 组件内部

问题 现在有一个需求&#xff0c;在中文环境下textView没有超过底层的组件限制&#xff0c;但是一切换到英文环境就超出了&#xff0c;这个如何解决呢&#xff1f;有啥例子吗&#xff1f; 就像这样子的。 解决 全部代码如下&#xff1a; <?xml version"1.0"…

解决无公网IP的微信公众号开发调试问题,利用内网穿透的实践经验分享

文章目录 前言1. 配置本地服务器2. 内网穿透2.1 下载安装cpolar内网穿透2.2 创建隧道 3. 测试公网访问4. 固定域名4.1 保留一个二级子域名4.2 配置二级子域名 5. 使用固定二级子域名进行微信开发 前言 在微信公众号开发中&#xff0c;微信要求开发者需要拥有自己的服务器资源来…