檢驗身份證的正確性 Golang版本

2022-02-07 17:48:24 字數 1747 閱讀 4357

//

checkid_card project main.go

package main

/** ai -> a1 , a2, a3, a4, a5, a6... a17 (a18 是校驗碼) 身份證前17位對應(ai)

* wi -> 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2 (17位)

* * int res = 0;

* for (i = 1; i < 17; i++)

* int y = res % 11;

* ** y 與 a18的對應關係

* * y

* a18 -> vefiry[18] = ; */

import (

"fmt""

strconv"//

"os"

//"strings"

)func byte2int(x

byte) byte

return (x - 48) //

'x' - 48 = 40;

}func check_id(id [

17]byte) int

/*for p := 0; p < len(arry); p++

*/var wi [17]int = [...]int

var res int

for i := 0; i < 17; i++

"res = ", res)

return (res % 11)}

func verify_id(verify

int, id_v byte) (bool, string

)

for i = 0; i < 11; i++

else

i, temp)

break

} }

//if id_v == 'x', let's convert it to type string

if (id_v == 88

) else

if temp ==id_v

return

false, "

驗證失敗"}

func usage()

func main()

//將字串,轉換成byte,並儲存到id_card陣列當中

for k, v := range byte

(id_card_string)

//複製id_card[18]前17位元素到id_card_copy陣列當中

for j := 0; j < 17; j++

/*fmt.println(byte2int(id_card[17]))

fmt.println(string(id_card[17]))

*//*

y := check_id(id_card_copy)

fmt.println(y)

*/fmt.println(verify_id(check_id(id_card_copy), byte2int(id_card[

17])))}//

測試身份證號碼:34052419800101001x

//測試身份證號碼:511028199507215915

執行效果如下:

**託管於github: 

驗證身份證號的正確性

1.需求 填寫人員資訊時,輸入的身份證號保證不會輸入錯誤,對輸入的身份證號進行校驗 身份證校驗 如果讓你設計個程式,用什麼變數儲存身份證號碼呢?長整數可以嗎?不可以 因為有人的身份證最後一位是 x 實際上,除了最後一位的x,不會出現其它字母 身份證號碼18位 17位 校驗碼 2.實現的演算法 iso...

居民身份證正確性驗證演算法

public idcard 驗證身份證是否符合格式 param idcard return public boolean verify string idcard if idcard.length 18 獲取輸入身份證上的最後一位,它是校驗碼 string checkdigit idcard.sub...

Python 驗證身份證的正確性並獲得相關的資訊

問題描述 輸入身份證號,校驗身份證號正確與否,不正確給予友情提示,正確請獲得該身份證號對應的是那個省或者直轄市的,出生日期,以及性別 python 如下 d animal d number d city print 請輸入您的身份證號 x input l list x 將輸入的序列轉化為列表 l2 ...