Python | ID番号の謎を興味深い説明

問題の説明

市民として、誰もが一意のID番号を持つ一意のIDカードを持っています。ほぼすべての所在や情報が保存されているため、ID番号だけで犯罪行為を行うことができる犯罪者が多い。しかし、バスのチケットなど、生活の中でこの情報を漏らしがちです。4桁は隠されていますが、本当に安全ですか?

解決

簡単なクエリで、IDカード番号は一意ですが、その生成のルールは確かに固定されていることを知るのは難しくありません。IDカード番号が正しいかどうかを判断できるのは式によってのみであり、その逆の場合も、正しいが不完全であることによって確認できます。完全な情報を逆にするID番号。

IDカードの構成要素は誰もが理解していると思います。最も重要なのは最後のチェックコードであり、チェックコードの計算は実際には非常に簡単です。

最初の17桁のそれぞれは、7。9.10.5。8.4。2. 1. 6. 3. 7. 9. 10. 5. 8. 4.2である係数に対応します。桁と係数を掛け、残りを11で割って得られる数は、0〜10の範囲内でなければなりません。次に、0、1、2、3、4、5、6、7、8、9、および10の11個の番号があります。対応する最後のID番号は1.0です。X。9.8。7. 6. 5. 4. 3. 2.このようにして、独自のチェックコードを取得できます。もちろん、読者は自分で試すことができます。自分のID番号。

計算しても366回の試行で結果が得られることはわかっていますが、言語の習得は簡単なので、作者はIDカードが正しいかどうかを判断し、ID番号を大まかに計算するコードを書きました。読者は自分で試すことができます。それは効果的ですか。

Pythonコード:ID番号が真であるかどうかを判断します

def ID_Card_judgment(ID_num): list1 = [7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2] sums = 0 for i in range(len(list1)): new_num = int(ID_num[i]) * list1[i] sums += new_num check_code = [1,0,"X",9,8,7,6,5,4,3,2] num = sums % 11 if str(check_code[num]) == ID_num[-1]: return "True" else: return "False"

完全なID番号を大まかに推測します。

def ID_Card_calculation(ID_num):if ID_num [-1] == "X":new_ID_num = ID_num [:-1] + "10" else:new_ID_num = ID_num a = new_ID_num.split( "")new_ID_card = ""。 join(a)front_code = [7,9,10,5,8,4,2,1,6,3,8,4,2]#範囲内のiについて、4桁の誕生日パラメーターの合計= 0を除く(len(front_code)):#len(new_ID_card)= 18-4-1 = 13 nums = int(new_ID_card [i]) front_code [i] sums + = nums#print(sums)4桁の誕生日に加えて、その他数と対応するパラメーター#7,9,10,5の積の合計誕生日の4桁のパラメーターduiying = [1,0,10,9,8,7,6,5,4,3,2]回= 0 for a in range(0,2):for b in range(0,10):for c in range(0,4):for d in range(0,10):if(sums +(a * 7 + b * 9 + c * 10 + d * 5))%11 == duiying [int(new_ID_num [17:])]:string = str(a)+ str(b)+ str(c)+ str(d)if 0 <int(string [0:2])<= 12および0 <int(string [2:4])<= 31:回+ = 1 ID_Card_num = ID_num [0:10] + string + ID_num [14:18] print(ID_Card_num)print( "%d件の合計。"%times)

このコードには、誕生日が****の数字の文字列が必要です。これは、ID番号を非表示にするための一般的な規則にも準拠しています。正確に推測することはできませんが、結果は20または30しかありません。既存のネットワーク上のいくつかのプラットフォームを介して情報を簡単に取得でき、名前や星座などの他の情報も取得できます。

結論

IDカードに保存されている個人情報が多すぎるため、全員が適切に保管する必要があります。私たちの情報を保護することができると思われる破棄されたチケットやその他の番号もありますが、それらはすべて最終的な「犯人」である可能性があります。他の4桁は非表示にできない場合がありますが、法律によって取得できます。したがって、著者は、犯罪者がチャンスを得るのを防ぐために、インターネット上でID番号をモザイク化する必要があることをすべての人に思い出させます。

END

チーフエディター|ワンナンラン

編集者| Li Helong

** where2goチーム**


Recommended Posts

Python | ID番号の謎を興味深い説明
pythonのid関数は何ですか
Centos8静的IP構成の実装について説明する