信用卡验证
用 Luhn 算法校验银行卡号,识别 Visa / Mastercard / American Express / JCB / Discover / UnionPay / Diners Club,输出 BIN 段、卡号长度与校验位,还能生成通过校验的测试卡号。
浏览器本地运行所有计算都在你的浏览器里完成,数据不会离开本机。
卡号
校验在本地完成:Luhn 算法(ISO/IEC 7812-1)只检查数字格式与校验位,不代表卡号真实存在或可用。
生成测试卡号
生成器只保证校验位与长度合法,号码不对应任何真实账户。
校验结果
输入卡号后点击「校验卡号」,或直接生成一个测试卡号。
这个工具能做什么
- 收银或后台表单里先做一次格式预检:少打一位或打错数字会在 Luhn 检查里直接暴露,不用等支付网关回错。
- 测试支付流程时先用生成器造一张通过 Luhn 的测试卡号(Visa、Mastercard、Amex、JCB、Discover、UnionPay、Diners Club),避免拿真实卡号试。
- 排查「网关识别的卡组织不对」:工具给出前 6 位 BIN、识别到的卡组织、允许长度与分组写法,可以逐项对照。
- 数据清洗或对账时抽查卡号格式,只看 Luhn 与长度两项结论,全程不联网。
示例
输入
4111 1111 1111 1111(16 位 Visa 测试卡号,带空格输入)
输出
去掉分隔符后为 4111111111111111;卡组织 Visa;BIN 411111;长度 16(Visa 允许 13 / 16 / 19 位);末位校验位 1,按 Luhn 推算也应为 1;Luhn 通过、长度通过,卡号有效
把末位换成 2 会显示「应为校验位 1」且 Luhn 未通过,但卡组织与长度仍分别显示 Visa / 16 位——每项检查单独给结论,而不是只返回一个 false。
常见问题
校验通过就说明这张卡是真的吗?
不能。Luhn 只检查数字符合模 10 校验规则、长度落在卡组织允许范围内,随手编的号码也可能通过。卡号是否真实存在、能否扣款必须由支付网关判断,本工具也不做任何联网请求。
为什么空格和连字符也能输入?
解析前会把空格和连字符全部去掉,所以 4111 1111 1111 1111、4111-1111-1111-1111 与纯数字等价。除此之外只允许数字,总长度不超过 19 位,出现字母会提示「卡号只能包含数字、空格与连字符」。
Diners Club 会不会被认成 Mastercard?
两者有一小段重叠:Diners Club 在美国、加拿大使用的 54、55 号段与 Mastercard 冲突,工具按主流实现归给 Mastercard。另外 Discover 的 622126–622925 落在 UnionPay 的 62 之内,所以检测顺序是先 Discover 再 UnionPay。
生成的测试卡号会重复吗?
理论上会。生成器只保证前缀落在该卡组织的合法号段、位数合法、校验位正确,中间位是随机数字(随机源用拒绝采样避免取模偏置)。所以它适合测试,不适合当唯一编号。
卡号会留在本地还是上传?
不会上传。校验与生成全部在浏览器里完成,页面不发任何请求,输入内容也不会被保存;拿不准时可以直接用工具自带的示例卡号或生成器造的号码。
关键词:credit card validatorluhn checkcard number checkbin lookupcard brand detect信用卡验证银行卡校验Luhn 算法卡号校验位卡组织识别测试卡号生成