1、根据GB 32100-2015 法人和其他组织统一社会信用代码编码规则,第18 位校验算法如下:式中:MOD(n,m)表示整数求余函数,例如:函数 MOD(31,31)的值为 0;i 表示统一社会信用代码字符从左到右的位置序号;表示统一社会信用代码第 i 位置上的代码字符的值,字符对应的值C见下表 A。表示校验码;18表示第 i 位上的加权因子, = MOD( ,31),加权因子见表 2.iWiW)1-(i3校验码计算方法实例输入的统一社会信用代码为 91350100M000100Y4Z,校验代码唯一性计算步骤如下:第一步:列出代码前 17 位字符位置序号 i 相对应的各个位置上的字符值 。i
2、Ci 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17C9 1 3 5 0 1 0 0 21 0 0 0 1 0 0 30 4第二步:由表 4 列出与字符位置序号 i 相对应的加权因子值 。iWi 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17W1 3 9 27 19 26 16 17 20 29 25 13 8 24 10 30 28第三步:计算与字符位置序号 i 相对应的乘积 。iCWi 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17CiW9 3 27 135 0 26 0 0 420
3、 0 0 0 8 0 0 900 112第四步:计算级数之和。= 1640)C(17iiW第五步:计算整数求余函数 MOD。级数之和 1640 模 31 余 28,即 MOD( ,31)值为 28)C(17iiW第六步:求出校验码字符值。=31- MOD( ,31)=31-28=318C)C(17iiW第七步:查出校验码字符。校验码字符值 18 对应的字符为 3。第八步:比较原始代码最后一位的字符与校验码字符原始第十八位字符为“Z” ,而计算出的校验码字符为“3” ,与校验码不相等,则该“91350100M000100Y4Z”统一社会信用代码格式不正确。若与校验码相等,则原始统一社会信用代码格式正确。表 1 代码字符集代码字符 代码字符数值01234567890123456789ABCDEFGHJKLMNPQR10111213141516171819202122232425TUWXY2627282930表 2 各位置序号上的加权因子i 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17W1 3 9 27 19 26 16 17 20 29 25 13 8 24 10 30 28