banner
andrewji8

Being towards death

Heed not to the tree-rustling and leaf-lashing rain, Why not stroll along, whistle and sing under its rein. Lighter and better suited than horses are straw sandals and a bamboo staff, Who's afraid? A palm-leaf plaited cape provides enough to misty weather in life sustain. A thorny spring breeze sobers up the spirit, I feel a slight chill, The setting sun over the mountain offers greetings still. Looking back over the bleak passage survived, The return in time Shall not be affected by windswept rain or shine.
telegram
twitter
github

Pythonを使用して、身分証番号を計算することができます。

開始。
まず、李大偉の友達の写真を見てみましょう。

image
チケットに露出している個人情報は次のとおりです:

3302211993****4914 李大偉

月日の 4 桁が欠けています。

それならば、合計 365 種類の可能性があります。

科学普及の時間:#

image
李大偉の身分証情報の前 6 桁「330221」に基づいて

簡単にわかります:

image
浙江省寧波市の人、1993 年生まれ
では、まずは Python で 1993 年のすべての日付を生成しましょう。

import time

#生まれた年のすべての日付を生成する
def dateRange(year):
    fmt = '%Y-%m-%d'
    bgn = int(time.mktime(time.strptime(year+'-01-01',fmt)))
    end = int(time.mktime(time.strptime(year+'-12-31',fmt)))
    list_date = [time.strftime(fmt,time.localtime(i)) for i in range(bgn,end+1,3600*24)]
    return [i.replace('-','') for i in list_date]

data_time  = dateRange('1993')

日付のリストが正常に生成されました。

image

そして、先ほどのチェックコードの計算ルールを使って、どの日付が一致するかを逆に検証しましょう!自分で計算ルールを書くのは面倒ですよね?
みなさんに紹介するのは、id-validator というライブラリです。
インストール:pip install id-validator
これを使って、身分証番号の正当性を検証したり、身分証番号の情報を取得したり、検証可能な偽のデータを生成したり、身分証番号をアップグレードすることができます。

image
それでは、id-validator を使って先ほど生成した身分証番号を順番に検証してみましょう。完全なコードは以下の通りです:

from id_validator import validator
import time

#生まれた年のすべての日付を生成する
def dateRange(year):
    fmt = '%Y-%m-%d'
    bgn = int(time.mktime(time.strptime(year+'-01-01', fmt)))
    end = int(time.mktime(time.strptime(year+'-12-31', fmt)))
    list_date = [time.strftime(fmt, time.localtime(i))for i in range(bgn, end+1, 3600*24)]
    return [i.replace('-', '') for i in list_date]

#すべての日付をループして、検証に合格した身分証番号を出力する
def vali_dator(id1, id2, id3):
    for i in dateRange(id2):
        theid = id1 + i + id3
        if validator.is_valid(theid):
            print(theid)

vali_dator('330221','1993','4914')

実行結果:

image

33 個の日付の中から李大偉の本当の誕生日を選び出すにはどうすればいいですか?
次に、身分証番号と名前が一致するかどうかで最終結果を絞り込む必要があります。以前の解決策は:12306 で検索し、12306 に連絡先を追加し、身分証番号と名前が一致する場合は検証が通過すると表示されます。通過しない場合は、身分証番号と名前が一致しないことを意味します。しかし、この方法はもう使えません。

それから、私は Alibaba Cloud の実名認証 API を見つけました。身分証の名前と身分証番号を照合して、身分情報が一致するかどうかを確認します。ただし、企業ユーザーのみが使用できますので、個人では使用できませんので、試すことはありません。

image

まとめ#

Python で身分証番号を計算する具体的な手順は、おおよそこのようなものです。もちろん、誕生月日は多くの人が QQ や他のソーシャルアプリで公開しているので、簡単に見つけることができます。

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。