银行卡编码规则及检验算法详解

2023-11-07

这里写图片描述

一、银行卡结构

XXXXXX XXXXXXXXXXXX X

发卡行标识代码 自定义位 校验码

根据ISO标准,银行卡长度一般在13-19位,国际上也有12位的。银联标准卡卡长度一般是在16-19位,双组织卡也有13-19位的。

二、发卡行标识代码

发卡行标识代码Bank Identification Number(BIN),又叫发卡机构标识代码Issuer Identification Numbers(IIN)。一般由6位数字组成,2014年底,国际标准组织(ISO)已经将BIN由6位数字调整到8位数字。目前国内银联卡,因银行众多,特别是村镇银行的存在,BIN长度以6位占绝大部分,另外还存在7、8、9、10等位数卡BIN。

发卡行标识代码第一位,为发卡行业标识号Major Industry Identifier(MII),代表的是发卡机构所处行业。具体分配规则如下:

这里写图片描述

目前银联标准卡以62开头,各银行再向银联进行卡BIN申请,如622848开头的卡为农行借记卡。我们发现,银联卡不都是以62开头,主要有2种情况。第一种是双组织卡,如银联、运通双组织卡,一般以信用卡居多,如招行与运通合作的运通卡。另外一种即早期以9开头的银行卡,这些卡都是国内自行分配的,仅限国内使用,无法与国际进行接轨。以下为部分常见卡组织发行的银行卡起始数字:

这里写图片描述

银联卡,通过卡BIN能获取到的信息不仅仅是发卡行,还能确定该卡卡种、卡名称、卡号长度等信息。以下为部分卡BIN信息列举:

这里写图片描述

【国内银行卡BIN号速查简表】(资料详见:http://wenku.baidu.com/view/1d93ebeb856a561252d36fb3.html

因此,只要能获取到比较全面的卡BIN数据,就能判断出银行卡发卡行及卡种。目前支付宝、微信等大部分主流需要绑卡的应用都是如此实现。

三、自定义位

发卡行自定义位,一般在6-12位。
中间位数由发卡行自定义,一般由6-12位数字组成。最多可以使用12位数字。

每个银行的个人账号标识规则有所不同。有的银行在这部分内容中会包含分行、支行、储蓄网点等代码信息。有得银行可能就没有这么详细,会使用自然流水顺序码

四、校验码算法

校验码为银行卡号最后一位,采用LUHN算法,亦称模10算法。计算方法如下:

第一步:从右边第1个数字开始每隔一位乘以2;

第二步: 把在第一步中获得的乘积的各位数字相加,然后再与原号码中未乘2的各位数字相加;

第三步:对于第二步求和值中个位数求10的补数,如果个位数为0则该校验码为0。

举例:

6259 6508 7177 209(不含校验码的银行卡号)

第一步:6*2=12,5*2=10,6*2=12,0*2=0,7*2=14,7*2=14,2*2=4,9*2=18

第二步:1+2 + 1+0 + 1+2 + 0 + 1+4 + 1+4 + 4 + 1+8 = 30

30 + 2+9+5+8+1+7+0 = 62

第三步:10-2=8

所以,校验码是8,完整的卡号应该是6259650871772098。

目前银联卡几乎都支持校验码算法,但是也不排除极个别不支持此算法的,如杭州银行早期发行的西湖卡。

注:本文摘录于不同地方,并经实践整理所得,望交流。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

银行卡编码规则及检验算法详解 的相关文章

  • kafka消息监听

    1 spring配置kafka网址 2 listener Component public class OrderMsgListener KafkaListener topics order groupId order service pu
  • 深度学习知识体系学习大全 牛!!

    搬来了大牛的博客 点击直接前往 https www yuque com angsweet machine learning jian jie 配一张大牛的思维导图 具体内容点进去都能看到 数学 机器学习 语言 算法 深度学习 书籍推荐 东西
  • 深度学习装机和使用 ubuntu18.04+cuda9.0+cudnn7.4

    深度学习装机配置流程 文章目录 深度学习装机配置流程 0 配置列表 1 BIOS设置 2 系统安装 3 深度学习环境配置 3 1安装ssh 3 2安装显卡驱动 3 3安装依赖库 3 4GCC降低版本 3 5安装CUDA9 0 3 6安装CU
  • Python第三方库pygame学习笔记(二)

    前言 在之前Python学习笔记中 学习过python第三方库pygame的三大基本机制和最小游戏设计框架 我们对国民偶像蔡徐坤进行了动态展示 之后 闲来无事实现了小时候玩过的小游戏贪食蛇 具体参考笔记一 python第三方库pygame学
  • Android Studio项目结构详解

    Android Studio 是谷歌推出的一个Android集成开发工具 基于IntelliJ IDEA 类似 Eclipse ADT Android Studio 提供了集成的 Android 开发工具用于开发和调试 在IDEA的基础上
  • 调试osgEarth(十四)分页瓦片加载器子节点的作用

    感谢 hankern 学习链接在https blog csdn net hankern article details 84170502 感觉这里应该是重头戏了 打起精神 慢慢调试体会 可见 默认20级

随机推荐

  • Charles使用详解(For macOS)

    Charles使用详解 下载安装 基础配置 高级功能 请求映射 Map Local Map Remote 取消结果替换 断点调试 修改请求 模拟网络环境 其他小功能 重复请求 专注个别请求 去除缓存 阻塞请求 常见问题 下载安装 官网下载安
  • 操作系统:进程同步与互斥之生产者-消费者问题(含报告和源码)

    目录 第一章 实验相关概述 第二章 实验的目的及要求 1 目的 2 要求 第三章 实验的实现思路及步骤 第四章 实验结果分析 1 结果分析 2 实现代码及截图 第五章 实验心得 参考文献 致谢 实验相关概述 有两个进程分别为消费者进程和生产
  • 结构体类型的Qvector容器:首先是结构体的说明

    结构体类型的Qvector容器 首先是结构体的说明 在c语言中 1 首先 在C中定义一个结构体类型要用typedef typedef struct Student int a Stu Stu只是类型 只有通过变量才能访问结构体中的数据 于是
  • 7个用Python就可以搞副业的方法

    抢茅台 全民开抢1499元的茅台 你抢到过吗 我表弟去年开始到现在抢到30 瓶 一瓶轻松赚1000元 没想到表弟私信我说 他的茅台都是用软件抢的 Python是啥 我是2G网了吗 还有这么好用的工具 不查不知道 一查吓一跳 原来早就有人用P
  • Java 获取当前项目路径

    利用System getProperty 函数获取当前项目路径 String currentPath System getProperty user dir System out println currentPath 输出结果 当前路径
  • 【完整攻略】OPPO手机无密码解锁方法

    全世界有数百万人拥有 OPPO 手机 它以其经济实惠但功能强大的智能手机而闻名 但是 与许多其他人一样 您可能会在某些日子后忘记密码 那么 如果您忘记了 OPPO 手机的密码或图案怎么办 你将如何解锁它 这是一个大问题 在这种情况下 请不要
  • 【Linux核心宝典】Linux 系统目录结构详解 - 01

    作者介绍 我是程序员洲洲 一个热爱写作的非著名程序员 CSDN全栈优质领域创作者 华为云博客社区云享专家 阿里云博客社区专家博主 前后端开发 人工智能研究生 公粽号 程序员洲洲 本文专栏 本文收录于洲洲的 Linux系列专栏 欢迎大家关注本
  • Linux服务器添加永久明细路由

    第一步 写入 etc sysconfig static routes文件 默认在 etc sysconifg目录中是没有这个文件的 需要我们手工创建 etc sysconfig static routes any net 192 168 1
  • 计算机毕设(附源码)JAVA-SSM基于协同过滤算法的个性化智能图书推荐系统

    项目运行 环境配置 Jdk1 8 Tomcat7 0 Mysql HBuilderX Webstorm也行 Eclispe IntelliJ IDEA Eclispe MyEclispe Sts都支持 项目技术 SSM mybatis Ma
  • el-cascader数据绑定值原理之展平操作的算法

    需求级联选择器默认选中全部节点 分析 数据绑定值为二维父子节点id同级数组 1 1 1 1 1 1 2 2 1 2 1 1 这种结构 而数据源是树形结构 所以我们把树形结构转换成如上二维数组结构 算法如下 1 options为树形数据 2
  • “OLT”、“ONU”和“PON”分别是什么意思?三者有什么区别?

    OLT optical line terminal 光线路终端 用于连接光纤干线的终端设备 ONU Optical Network Unit 光网络单元 ONU分为有源光网络单元和无源光网络单 一般把装有包括光接收机 上行光发射机 多个桥接
  • Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x0000000794500000, 576716800, 0)

    linux基于tomcat部署的web应用程序报 Java HotSpot TM 64 Bit Server VM warning INFO os commit memory 0x0000000794500000 576716800 0 f
  • mysql 'performance_schema'.'session_variables' 问题处理

    今天 升级了mysql 5 7 使用mysql workbench时 处理问题 无法连接mysql服务了 先提示 performance schema session variables 不存在 后来提示结构错误 mysql workben
  • linux系统安全检查

    1 使用 last 命令查看下服务器近期登录的账户记录 确认是否有可疑IP登录过机器 检查说明 攻击者或者恶意软件往往会往系统中注入隐藏的系统账户实施提权或其他破坏性的攻击 解决方法 检查发现有可疑用户时 可使用命令 usermod L 用
  • 【网络安全】命令执行漏洞

    命令执行漏洞 命令执行漏洞原理 危害 检测方法 有回显检测方法 分号 从左到右执行 管道符 将见面命令的输入为后面命令的标准输入 后台任务符号 命令从左到右执行 与 逻辑与 前面命令执行成功后才会执行 或 逻辑或 前面执行失败才能执行 反引
  • Java初学疑问之接口为什么能运行Object的方法

    public class CommonTest public static void main String args Animal animal new Dog animal toString 为什么能运行该方法 class Dog im
  • 通过清华大学镜像和pip进行安装

    通过清华大学镜像和pip进行安装 有时候网络不佳时 直接通过pip安装可能会很慢或者不成功 因此可以借助清华镜像 可以在使用pip的时候加参数 i https pypi tuna tsinghua edu cn simple 以gensim
  • 前端实战:小实例1——导航栏

    前言 一个导航栏可看作一个列表 在 HTML 使用 ul 标签和 li 标签元素进行结构表示 在 CSS 中进行样式处理 对应标签元素的具体用法可查看 HTML常见标签介绍 实现思路 使用 div 包装导航栏 用 ul 和 li 标签展示导
  • EasyPoi 数据导入导出,贼方便

    1 maven坐标
  • 银行卡编码规则及检验算法详解

    一 银行卡结构 XXXXXX XXXXXXXXXXXX X 发卡行标识代码 自定义位 校验码 根据ISO标准 银行卡长度一般在13 19位 国际上也有12位的 银联标准卡卡长度一般是在16 19位 双组织卡也有13 19位的 二 发卡行标识