今天意外和身份證結緣

2021-09-22 20:29:22 字數 3168 閱讀 1123

原文:

今天意外和身份證結緣

說起身份證,人人都有,前幾年才領的身份證外皮都沒撕開過, 當時那個高興呀,終於可以像大人一樣了。咱也是有身份的人了!

記得在學校的時候課間和老師聊天 小鬼問了老師乙個問題,這麼說的 「老師,您做程式設計師有這麼長時間你覺得那些有意思的事是什麼?」 老師想了稍許。答道「就是半夜三更時候,解決了困擾自己很久乙個問題,再看看qq 同事和同學還在群裡討論學術問題。 趕緊向群裡敲兩個字。 然後睡安穩覺了」。 聽的小鬼當時那個悲催呀。小鬼又問了一句「還有呢」 這回他馬上回應道:「就在別人掏出二代身份證的時候!」小鬼一愣 「因為老師當年在某某公司 承接了二代身份證的程式開發, 一看到別人掏出身份證就暗暗樂『這是我做的』 算是一種成就感吧。」 小鬼 聽到這裡 趕忙掏出身份證 老師會心一笑就結束談話。這麼一件小事讓我泛起漣漪許久。

當然今天把安排的事做完了。 以為可以清閒一陣子了。老大又丟東西來了,好吧鍛鍊機會來了。小鬼得到乙個 多頻射讀寫器, 是要讀二代身份證的基本資訊。今天還是想法設法搞定了。回到家了,突然想起前面了內容。

下面是小鬼遇到情況 和 解決方案

如果小鬼的做法有不妥請見諒和希望不吝嗇你的想法

還是**吧 

這麼會不會有廣告嫌疑呀,不管了。誰在乎了,誰吃藥。呵呵,這就是拿到道裝置。

沒有api文件沒有示例**,當時聯絡售後,沒有****,有點困難重重,於是上網搜搜吧碰碰運氣,

搜到兩篇裡的兩篇文章 cyan的 asp.net程式讀取二代身份證 、南瘋的一篇 不同機具的通用的第二代居民身份證讀寫

照著上述文章 copy過來 簡單調整一下 

using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.runtime.interopservices;

namespace readcard

public

void ontimer()

if (intopenret != 1)

//卡認證

int intreadret = authenticate();

if (intreadret != 1)

//readbaseinfos(推薦使用)

int intreadbaseinfosret = readbaseinfos(

name, gender, folk, birthday,

code, address, agency,

expirestart, expireend);

if (intreadbaseinfosret == 0)

beep(2047, 200);

idcardinfo idinfo = new idcardinfo();

idinfo.code = code.tostring().trim();

idinfo.name = name.tostring().trim();

idinfo.gender = gender.tostring().trim();

idinfo.folk = folk.tostring().trim();

idinfo.birthday = birthday.tostring().trim();

idinfo.address = address.tostring().trim();

idinfo.agency = agency.tostring().trim();

idinfo.expirestart = expirestart.tostring().trim();

idinfo.expireend = expireend.tostring().trim();

idinfo.photo = system.io.directory.getcurrentdirectory() + "

\\photo.bmp

";closecomm();

if (ontimercompleted != null)}}

public

class idcardinfo

public string gender

public string folk

public string birthday

public string code

public string address

public string agency

public string expirestart

public string expireend

public string photo

}}

客戶端介面

}可是一執行就報 

於是找到示例程式 沒有源**只是 exe 和dll去找果然找到了

但是單獨加上stdapi.dll 還是不行 於是氣極敗壞的把所有dll全部加在 根目錄/windows/system32下

事後覺得那些小寫命名的檔名可能是必須的 不是必須放到system32下面可以應用程式同一目錄下也可以。

總之果然好了

但是有必要那麼多dll嗎? 乙個個的試試出來,有體力活的味道了。

還剩十個的時候就沒再試下去了 

源**

超實用的php驗證身份證和js驗證身份證的方法

js驗證身份證的方法 function validateidcard idcard 0 d 1 0 2 0 1 2 d 3 0 1 d 1 9 d 1 9 d 0 d 1 0 2 0 1 2 d 3 0 1 d d xx 如果通過該驗證,說明身份證格式正確,但準確性還需計算 if regidcard...

身份證提取生日和性別

提取生日 replace 替換乙個與正規表示式匹配的子串 例 20200426,replace 1 2 1,2按順序對應小括號裡面的小正則 捕獲到的內容 提取身份證生日 iubirthday click function 18位身份證 else if idcard.length 18 birthda...

php 身份證驗證,根據身份證獲取生日和性別

php 身份證驗證工具類 身份證驗證 private function checkidcard idcard 取出本體碼 idcard base substr idcard,0,17 取出校驗碼 verify code substr idcard,17,1 加權因子 factor array 7 9...