如何把20位身份证号变成18位

将20位身份证号转换为18位,需要去除最后一位校验码。
在我国的身份证号码中,前17位数字代表了公民的基本信息,包括出生日期、性别和地区代码等。而第18位数字则是校验码,用于验证身份证号码的正确性。在一些特定情况下,比如数据迁移、系统兼容等问题,我们可能需要将20位的身份证号码转换成18位的。
要将20位身份证号转换为18位,首先需要了解20位身份证号的构成。20位身份证号是在原有18位基础上,增加了两位数字,通常是由于某些历史原因或者地区差异造成的。这两位数字可能是地区代码或者其他信息,但它们并不影响身份证号码的基本功能。
以下是具体的转换步骤:
1. 识别20位身份证号中的额外信息:首先,你需要确定20位身份证号中最后两位数字的具体含义。这通常需要查阅相关资料或者与发证机构确认。
2. 删除最后两位数字:一旦确定了最后两位数字不是必需的信息,就可以将它们从20位身份证号中删除。
3. 添加校验码:对于删除了最后两位数字后的18位身份证号,需要重新计算校验码。计算校验码的方法是使用ISO 7064:1983.MOD 11-2算法,具体步骤如下:
将前17位数字分别乘以不同的系数(从左到右分别为:7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2)。
将上述乘积相加。
将相加后的和除以11,得到余数。
根据余数,查找对应的校验码(0至10分别对应1至X)。
4. 更新身份证号码:将计算出的校验码替换掉原来的最后两位数字,得到新的18位身份证号码。
需要注意的是,这个过程需要谨慎操作,因为错误的转换可能会导致身份证号码无效。在执行转换之前,建议先对原始数据进行备份,并确保转换后的身份证号码在所有相关系统中都能正常使用。