Python genera aleatoriamente números de identificación y función de comprobación

En este artículo se describe el generado de forma aleatoria número de identificación y control de funcionamiento de Python, que se menciona en el texto del método de cálculo de suma de comprobación para cada uno, un amigo en necesidad puede referirse a
la identidad de la composición de manera

República Popular de la China National Standard GB "número de identidad ciudadana" 11643-1999 establece que: La ciudadanía se caracteriza por un número de código de combinación, entre el código de 17 dígitos y una composición corporal código de verificación.

18 forma de realización es una combinación de números: Aquí Insertar imagen Descripción
código de área (6) Fecha de Nacimiento código (8 bits) código de secuencia (2) Código Sexo (1) código de comprobación (1)

• Código de área se refiere a los ciudadanos del condado de residencia (ciudad, pueblo, distrito) administrativa código de división permanente 110102 es tan Pekín - Distrito de Xicheng. Pero los residentes de Hong Kong, Macao y Taiwán regiones número de identificación sólo es precisa a nivel provincial.
• código de fecha de nacimiento representación de los ciudadanos nacidos en el calendario (4), el mes (2), Japón (2).
• Representación código de pedido a nivel regional en el mismo código de área se identifica, para el mismo año, el mismo mes, las personas nacidas el mismo día del número de secuencia programada.
• La representación de género código impares hombres, las mujeres representan un número par.
• El último dígito es un código de verificación, aquí es la norma ISO 7064: 1983, MOD sistema de 11-2 suma de comprobación. Suma de comprobación es un número, pero si el último código de control con el cálculo de código del sistema es "10", a causa de un número de identificación predeterminado es 18 bits, lugares "X" en lugar de un código de verificación "10."

método de cálculo de suma de comprobación

. • 1 El número de identificación se marca como derecho de a_1 izquierda, a_2, \ cdots, a_ {18}, a_1 es el código de verificación;
. • 2 calcula un coeficiente de peso w_i = 2 ^ {i-1 } \ \ BMOD \ {11}

Por lo tanto: Aquí Insertar imagen Descripción
El uso de Python para obtener tarjetas de identidad de la suma de comprobación:

def get_check_digit(id_number):
  """通过身份证号获取校验码"""
  check_sum = 0
  for i in range(0, 17):
    check_sum += ((1 << (17 - i)) % 11) * int(id_number[i])
  check_digit = (12 - (check_sum % 11)) % 11
  return check_digit if check_digit < 10 else 'X'

generada aleatoriamente ID

A partir de la combinación anterior, podemos sacar el siguiente código:

@classmethod
def generate_id(cls, sex=0):
  """
  随机生成身份证号,sex = 0表示女性,sex = 1表示男性
  """
  # 随机生成一个区域码(6位数)
  area_info = random.randint(0, len(addr))
  id_number = str(addr[area_info][0])
  # 限定出生日期范围(8位数)
  start, end = "1960-01-01", "2000-12-30"
  days = (datetime.datetime.strptime(end, "%Y-%m-%d") - datetime.datetime.strptime(start, "%Y-%m-%d")).days + 1
  birth_days = datetime.datetime.strftime(
    datetime.datetime.strptime(start, "%Y-%m-%d") + datetime.timedelta(random.randint(0, days)), "%Y%m%d"
  )
  id_number += str(birth_days)
  # 顺序码(2位数)
  id_number += str(random.randint(10, 99))
  # 性别码(1位数)
  id_number += str(random.randrange(sex, 10, step=2))
  # 校验码(1位数)
  return id_number + str(cls(id_number).get_check_digit())

Las principales herramientas de funciones

if __name__ == '__main__':
  random_sex = random.randint(0, 1) # 随机生成男(1)或女(0)
  print IdNumberUtil.generate_id(random_sex) # 随机生成身份证号
  print IdNumberUtil('410326199507103197').area_id # 地址编码:410326
  print IdNumberUtil('410326199507103197').get_area_name() # 地址:汝阳县
  print IdNumberUtil('410326199507103197').get_birthday() # 生日:1995-7-10
  print IdNumberUtil('410326199507103197').get_age() # 年龄:23(岁)
  print IdNumberUtil('410326199507103197').get_sex() # 性别:1(男)
  print IdNumberUtil('410326199507103197').get_check_digit() # 校验码:7
  print IdNumberUtil.verify_id('410326199507103198') # 检验身份证是否正确:False

resumen

Lo anterior es una pitón pequeñas series para introducir el número de identificación generado de forma aleatoria y la función de verificación, queremos ayudar a
que más de la forma de múltiples contenidos, y finalmente a recomendar una buena reputación en el número de instituciones públicas [], donde los programadores hay una gran cantidad de veteranos aprendiendo

Habilidades, experiencia, habilidades de la entrevista, la experiencia laboral y otra cuota de aprendizaje, la prepararon con más cuidado la basada en cero información introductoria, información sobre proyectos reales,

El método tiene programador temporizado Python explicar la tecnología cotidiana, para compartir algunas de las letras y la necesidad de prestar atención a los pequeños detalles
Aquí Insertar imagen Descripción

Publicado 58 artículos originales · ganado elogios 11 · Vistas a 50000 +

Supongo que te gusta

Origin blog.csdn.net/chengxun02/article/details/105129014
Recomendado
Clasificación