首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

社会信用代码 js 校验规则

社会信用代码(Social Credit Code)是中国用于标识法人和其他组织的唯一编码系统。它由18位字符组成,包括数字和大写字母,具有特定的结构和校验规则。下面是社会信用代码的JS校验规则及相关信息:

基础概念

社会信用代码由18位字符组成,结构如下:

  • 第1位:登记管理部门代码
  • 第2位:机构类别代码
  • 第3-8位:登记管理机关行政区划码
  • 第9-17位:主体标识码(组织机构代码)
  • 第18位:校验码

校验规则

校验码的计算方法如下:

  1. 将社会信用代码前17位字符分别乘以对应的系数(系数从左到右依次为:1, 3, 9, 27, 19, 26, 16, 17, 20, 29, 25, 13, 8, 24, 10, 30, 28)。
  2. 将乘积结果相加。
  3. 将总和除以31,取余数。
  4. 用31减去余数,得到校验码。如果结果为31,则校验码为0。

优势

  • 唯一性:确保每个法人和其他组织有一个唯一的标识码。
  • 标准化:统一编码标准,便于信息管理和交换。
  • 可校验:通过校验码可以验证代码的正确性。

应用场景

  • 政府管理:用于政府部门对法人和其他组织的管理和监督。
  • 商业活动:在商业交易中用于确认对方身份和信用状况。
  • 金融服务:银行和金融机构用于客户身份验证和风险评估。

示例代码

以下是一个简单的JavaScript函数,用于校验社会信用代码:

代码语言:txt
复制
function validateSocialCreditCode(code) {
    const coefficients = [1, 3, 9, 27, 19, 26, 16, 17, 20, 29, 25, 13, 8, 24, 10, 30, 28];
    const checkCodeMap = '0123456789ABCDEFGHJKLMNPQRTUWXY';

    let sum = 0;
    for (let i = 0; i < 17; i++) {
        sum += coefficients[i] * checkCodeMap.indexOf(code[i]);
    }

    const remainder = sum % 31;
    const checkCode = checkCodeMap[31 - remainder];

    return checkCode === code[17];
}

// 示例使用
const code = '91350100M000100Y43';
console.log(validateSocialCreditCode(code)); // 输出: true 或 false

可能遇到的问题及解决方法

  1. 校验码计算错误
    • 原因:可能是系数或校验码映射表使用错误。
    • 解决方法:仔细检查系数数组和校验码映射表是否正确。
  • 输入格式错误
    • 原因:输入的社会信用代码可能包含非法字符或长度不正确。
    • 解决方法:在计算校验码前,先验证输入字符串的长度和字符合法性。
  • 性能问题
    • 原因:大量数据校验时可能导致性能瓶颈。
    • 解决方法:可以考虑使用Web Workers进行多线程处理,或优化算法以提高效率。

通过上述方法和代码示例,可以有效校验社会信用代码的正确性,并在实际应用中确保数据的准确性和可靠性。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

企业统一社会信用代码规则

从2016年10月1日起正式实施“五证合一、一照一码”(即是“统一社会信用代码”)。社会信用代码,也称统一社会信用代码,是企业在全国范围内的唯一、不变的法定身份识别代码。...一般来说,我们可以在营业执照的右上角,找到该企业的统一社会信用代码。...统一社会信用代码规则 依据《国务院关于批转发展改革委等部门法人和其他组织统一社会信用代码制度建设总体方案的通知》(国发[2015]33号)的规定,建立“统一社会信用代码”,统一代码设计为18位,由“登记管理部门代码...、机构类别代码、登记管理机关行政区划码、主体标识码(组织机构代码)、校验码”五个部分组成。...(参照《全国组织机构代码编制规则》[GB 11714—1997]) 校验码 第五部分(第18位):校验码,使用阿拉伯数字或英文字母表示。

1.8K30

Python 生成、识别社会统一信用代码

三证合一之后,社会统一信用代码就是企业的身份证。也就是说只要你的程序涉及企业信息的录入,那就少不了社会统一信用代码的录入。...这里分享一个工具,可以用 Python 来识别社会统一信用代码,也可以随机生成社会统一信用代码。 社会统一信用代码,共 18 位,其中 第 1 位:登记管理部门码。...第 3-8 位:表示行政区划代码,如350100是福建省福州市 第 9-17 位:企业的主体识别码,比如组织机构代码。 第 18 位:校验位。...其实第 17 位,也是校验位,是校验企业的主体识别码的校验位。至于校验规则,一两句话也说不清,可以查相关资料,也可以看下面的代码。 识别或生成社会统一信用代码,就是看是否符合以上规则。...social_unified_creditcode 用法: 1、安装 pip install git+https://github.com/somenzz/social_unified_creditcode.git 2、使用 # 随机一个统一社会信用代码

1.5K10
  • 统一社会信用代码管理 大数据发挥重要作用

    国家层面的社会信用体系建设规划已上报国务院。...由国家信用体系建设联席会议编制完成的《社会信用体系建设规划纲要(2014-2020)》显示,以政务、商务、社会、司法等四大领域为主体的信用体系建设方案实现了社会信用的全面覆盖。...规划提出建立以公民身份证为基础的公民统一社会代码制度的方案;建立以组织机构代码为基础的法人和其他组织统一社会信用代码制度。这意味着公民和企业法人组织都将有统一信用代码。   ...按照规划,在未来,每一个公民、法人和社会组织将会将有唯一的信用代码,各项信用信息的整合也将具备可行基础,当前信用信息种类多、发布广、整合难、处理繁的局面将会得到有效化解,信用体系建设的基础设施将初具雏形...,信用查询、公示和基于信用的服务体系将实现联动,覆盖全社会的社会信用体系建设将驶上快车道。

    1.3K60

    二代身份证编码规则及校验代码实现

    本文主要讨论的是二代身份证编码规则及其Java代码实现,下面的校验方式还不是特别严谨,由于只校验了前两位的省份信息,中间六位的出生日期信息和最后一位的校验码信息,故对于部分不满足要求的证件号码刚好同时满足了这里提到的几个条件...,也会被判定为是合法的证件号码… 1 二代身份证号码编码规则 1.1 编码格式 1999年我国颁发了第二代居民身份证号,公民身份号码为18位,且终身不变。...居民身份证格式如:ABCDEFYYYYMMDDXXXR 1.1.1地址码(ABCDEF) 表示登记户口时所在地的行政区划代码(省、市、县),如果行政区划进行了重新划分,同一个地方进行户口登记的可能存在地址码不一致的情况...行政区划代码按GB/T2260的规定执行。...checkCode.equals(lastNum)){ return false; } return true; } 3 参考文献 金融支付:身份证号码的编码规则 java

    1.7K20

    Oracle 关于身份证校验规则详细说明(附有代码复制可执行)

    3)(身份证号码最后一位)是根据前面十七位数字码,按照ISO 7064:1983.MOD 11-2校验码计算出来的检验码。...作为尾号的校验码,主要是为了校验计算机输入公民身份证号码的前17位数字是否正确,是由号码编制单位按统一的公式计算出来的,如果某人的尾号是0-9,都不会出现X,但如果尾号是10,那么就得用X来代替,因为如果用...三、校验码的计算方法 1、将前面的身份证号码17位数分别乘以不同的系数。从第一位到第十七位的系数分别为:7-9-10-5-8-4-2-1-6-3-7-9-10-5-8-4-2。...最后通过对应规则就可以知道余数2对应的是罗马数字X。可以判定这是一个合格的身份证号码。...--返回-4:表示身份证最后一位校验位有误。

    2.1K20

    ASP.NET 中验证的自定义返回和统一社会信用代码的内置验证实现

    修改结果 自定义验证规则 内置的验证虽然满足了基本的使用需求,但如何自定义验证规则呢?下面我们就以统一社会信用代码为例,介绍如何自定义内置验证规则。...验证规则介绍 我们要验证统一社会信用代码,首先就需要了解它。统一社会信用代码是一组长度为18位的用于法人和其他组织身份识别的代码。相当于我们自己的身份证号,是推动社会信用体系建设的一项重要改革措施。...位 机构类别代码1位 登记管理机关行政区划码6位 主体标识码(组织机构代码)9位 校验码1位 如何验证,我们只需要按照官网的《统一社会信用代码数据错误类型及其标准提法(错码)...校验码验证规则 编码实现 我们创建一个 SocialCreditCodeAttribute.cs 文件,继承 Attribute, IModelValidator 实现对统一社会信用代码的数据验证,具体内容如下...= "请填写统一社会信用代码")] public string?

    97530

    Validate.Net

    # Validate.Net #### 介绍 Validate.Net将Validate.js移植到.Net平台,可以更方便、更快捷的校验实体内属性值是否合法。...内置多种常规数据校验规则(校验必填、校验字符串长度区间、校验最大最小值、校验值区间、校验最大最小长度、校验长度区间、 Email、邮编、url、正整数、负整数、非正整数、非负整数、ip地址、qq、身份证号码...、统一社会信用代码 ),支持自定义正则校验、方法重写等扩展校验。...后续将支持nuget安装 #### 使用说明 ####  实体类示例代码:     public class UserModel     {         ///          ...        [ValidateIDCard]         public string IDCard { get; set; }         ///          /// 校验统一社会信用代码

    67330

    一文带你看透身份证归属地

    身份证归属地信息在个人社会保障、医疗保险、住房等方面都有重要作用。 中国居民身份证号码编码规则 第一、二位表示省(自治区、直辖市、特别行政区)。...第十八位表示校验码。作为尾号的校验码,是由号码编制单位按统一的公式计算出来的,校验码如果出现数字10,就用X来代替,详情参考下方计算方法。...社会保障:身份证归属地是个人享受社会保障、医疗保险、养老金等福利的前提之一。不同地区的社会保障政策有所不同,身份证归属地可以影响到个人的福利待遇。...证明个人信用:身份证归属地是个人信用记录的一部分,它可以证明个人的居住地和工作地,以及个人的身份信息。这对于申请贷款、信用卡等金融服务是必要的。...图片 3.我们提供了各种开发语言的调用代码示例,可以快速接入调用。 图片

    1.9K10

    企业工商四要素核验API的实现原理和功能介绍

    引言随着社会经济的不断发展,对企业信息的准确性和可信度要求也越来越高。为了有效防范企业信息不实和欺诈行为,企业工商四要素核验API应运而生。...该API可以通过传入企业名称、社会统一信用代码、法人名称、法人身份证等信息,快速进行核验,确保这四要素的一致性,从而提高对企业信息的信任度。...用户可以通过传入企业名称、社会统一信用代码、法人名称、法人身份证等信息,API将返回验证结果,帮助用户判断所输入信息是否与工商数据库中的信息一致。2.欺诈检测该API还可以用于欺诈检测。...企业工商四要素核验API推荐使用APISpace 的 企业工商四要素核验API,传入企业名称、社会统一信用代码、法人名称、法人身份证,校验此四项是否一致。官方权威核验,实时更新。...除了四要素核验,APISpace 还有企业工商三要素核验 API,通过输入企业名称、法人、注册号 /组织机构代码 /统一社会信用代码,验证三者是否匹配一致。

    48730

    信用卡验证-卢恩算法

    它广泛应用于验证信用卡号码以及其他数字序列,例如政府的社会安全号码 (SSN)。如今,Luhn算法是电子支付系统的重要组成部分,所有主要信用卡均使用此算法。...Luhn算法的真实示例 Luhn算法的核心概念之一是使用所谓的“校验位”。这些数字是插入到更广泛的数字序列中的,用以验证或“检查”整个数字的真实性。 对于信用卡而言,校验位是信用卡号末尾的单个数字。...这个校验位并不是由信用卡公司专门选择的,而是由Luhn算法根据序列中的前面数字自动确定。...当用户输入他们的信用卡号码以完成交易时,支付处理软件可以利用Luhn算法检测指定号码的准确性,部分依赖于其校验位。...如今,Luhn算法已集成在流行的编程语言和代码库中,使得在新的软件应用程序中包含基于Luhn的识别号验证变得相对容易。

    18110

    区块链:赋能信用体系建设

    终究是社会信用的缺失。一个没有“信用”的社会是令人担忧的,一个没有信用体系的社会,对于广大群众来说,无疑是灾难。正因为如此,信用体系建立,尤为重要,且刻不容缓。...在数据链下存储的场景里,区块链可以设置校验机制从而保证信息的真实性,在一个完善的机制下,任何匹配不当和误差,都将在区块链的自动判断机制里返回出结果。而通过区块链的共识机制,可以奖励提供正确信息的人。...对于提供虚假数据的将其信用下调。提供真实信息后,信用又可以上升。如此一来,将会对人们做出约束,从而保证信息准确。这样的机制可以使用在社会信用场景的风险防范和管控。 另外一点,就是区块链的可追溯性。...其实不论是早些年的三聚氰胺,还是去年的长生疫苗,这些发生在离我们很远的事件正在不断影响着社会的进程。...区块链这种自带价值的创新技术,也许能够给我们打造诚信社会提供了一个革命性的,依赖于技术的解决方案。 区块链技术改变中心化的人治管理,使我们的监管体系依靠智能合约和代码的约束。

    1.7K00

    .NET Core 如何生成信用卡卡号

    导语 上个月我写了《.NET Core 如何验证信用卡卡号》,不少朋友表示挺有兴趣。在金融科技行业的实际工作中,通常还需要生成信用卡卡号用来测试,今天我就来教大家如何生成信用卡卡号。...使用char计算,耗时 1ms 所以,不要小看这些“骚操作”,平时代码里看到同事这么写不要觉得只是在装逼。尽管有时候代码阅读体验没有那么直观,但如果你的业务面临苛刻的压力时,能够明显体验到性能区别。....NET Core 的基础类库源代码里也有不少类似这样的基础类型骚操作,有兴趣的读者可以去翻翻。 然而装逼,是人类社会的刚需,光用char计算逼格还不够,还记得上回的 Luhn 算法吗?...也就是说,生成卡号其实只要生成有效的校验位,其他数字随机,只要校验位正确,就可以通过 Luhn 检查。 校验位生成 还记得校验位怎么来的吗?...CalculateSum(digits); var lastDigit = sum * 9 % 10; return lastDigit; } 该函数的 digits 参数接受的值是不包含校验位的信用卡其余卡号

    1.4K30

    专家精品|密码朋克的社会实验(三):比特币发明了什么

    在信用货币时代,货币的实际发行者是——人类。 在这里,货币发行第一定律出现了: 「货币发行第一定律」:谁负责发行,就要用那个世界的规则限制发行量。 大自然的限制规则是:产量。...而信用货币时代的轨迹,会发现货币本身的价值在不断降低,换个说法就是货币增发的成本越来越低。这表明,对信用和中央集权的依赖程度就必须增高,于是货币发行方从私人钱庄、地方政府逐渐到中央银行。...所以,货币发行第二定律也出现了: 「货币发行第二定律」:谁降低货币发行成本,就必须同时加强那个世界的规则。 这意味着,随着货币的信用化,中央集权的社会模式必须逐渐壮大。...它改变了信用货币时代人类单纯依靠增强中央集权来降低货币发行成本的模式。按照货币世界的规则,新的势力应该担负起建立新规则的任务。 计算机世界限制发行量的规则是什么?那显然就是计算难度。...—— Linus Torvalds 这里用 python 实现一个不到50行代码的区块链 demo,其实原理非常简单。

    54720
    领券