身份校验码python计算公式
时间: 2023-05-25 08:04:14 浏览: 77
对于身份证号码而言,校验码的计算过程如下:
1. 将身份证号码前17位存放在一维数组中,分别乘以对应的权值(权值从左到右依次为:7、9、10、5、8、4、2、1、6、3、7、9、10、5、8、4、2),其中以第17位为奇数的性质来确定最后一位可采用系统给定的校验码,以保证计算的正确性。
2. 将乘积求和,得到sum。
3. sum除以11,得到余数为r。
4. 根据余数r来对应一个校验码(校验码列表为:1、0、X、9、8、7、6、5、4、3、2)。
5. 如果第17位与上一步计算得到的校验码相同,则说明身份证号码有效。
下面是Python代码实现:
```
def check_id(id_num):
weights = [7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2]
check_codes = ['1','0','X','9','8','7','6','5','4','3','2']
multi_sum = sum([int(id_num[i])*weights[i] for i in range(17)])
remainder = multi_sum % 11
if id_num[-1] == check_codes[remainder]:
return True
else:
return False
```
相关问题
crc校验码计算python代码
以下是CRC校验码计算的Python代码:
```
import binascii
def crc_checksum(data):
crc = 0xFFFF
for i in range(len(data)):
crc ^= data[i]
for j in range(8):
if crc & 0x0001:
crc >>= 1
crc ^= 0xA001
else:
crc >>= 1
return binascii.hexlify(crc.to_bytes(2, byteorder='little')).decode('utf-8')
data = b'Hello, world!'
checksum = crc_checksum(data)
print(checksum)
```
上述代码计算了字符串"Hello, world!"的CRC校验码。输出的校验码为"b'8696'"(十六进制)。可以根据需要修改输入数据。
Python身份证最后一位校验码怎样计算
身份证号码是由17位数字和一位校验码组成,其中校验码采用ISO 7064:1983, MOD 11-2校验码系统。其计算方法如下:
1.将身份证号码的前17位数分别乘以不同的系数,这些系数分别为:7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2。
2.将这17个乘积相加。
3.将上一步得到的结果除以11,并取余数。
4.用余数去查找校验码,具体对应关系如下:
0:1
1:0
2:X
3:9
4:8
5:7
6:6
7:5
8:4
9:3
10:2
因此,如果余数为0,校验码就是1;如果余数为1,校验码就是0;如果余数为2,校验码就是X。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![exe](https://img-home.csdnimg.cn/images/20210720083343.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)