閱讀159
很多產品都會用到「實名認證」, 比如售票軟體、銀行卡、交易軟體等。 如此常見的功能, 當然也是產品人應該瞭解的。 當然, 鑒於產品人無需過多涉及技術知識, 我們就談談產品人應該瞭解的「實名認證」知識。
1.實名認證的方式
在互聯網產品中, 「實名認證」的方式大致有3種:
1)姓名+身份證號碼匹配認證。 產品舉例:火幣網、金斧子網站;
2)身份證正反面照片+人臉照片認證。 產品舉例:火幣網、雲幣網;
![](/images/lazyload.gif)
3)身份證正反面照片+人臉識別。 產品舉例:阿裡小號。
要採取哪種方式, 要視產品目標與使用者需求而定。 目前來看, 方式3應用較少, 可能這有一定的技術難度, 所以一般公司並不會採用。 而方式1與方式2的使用都比較多, 其中方式2更為可靠, 方式1更為簡單。
以上3種方式, 都談不上絕對可靠, 但可靠性在逐漸升高, 能過濾掉的作弊用戶也在增多。
所以, 有些網站對不同級別使用者使用不同的認證方式:對低級別使用者, 使用方式1;對中等級別使用者, 使用方式2;對高級用戶, 使用支付寶的芝麻認證。
我親身參與過的, 是方式1, 下面就詳細聊聊方式1。
2.姓名+身份證號碼匹配認證
乍一看, 這種認證似乎很簡單——不就是驗證一下是否匹配嗎?但細分之後, 就有很多值得玩味的細節。 比如:如何驗證身份證號碼與姓名是否匹配?驗證過程速度如何?驗證的成本如何?
1)認證成本與時間
姓名+身份證號碼是否匹配, 根據官方系統提供的資料進行。 這就帶來了兩個關鍵問題:
a.成本較高——一次認證1元以上(具體多少就不說了);
b.認證時間可能較長——有時可能需要十幾秒才能返回認證結果。
解決方案:儘量將錯誤認證阻擋在產品中, 而不是讓其進入官網系統, 從而節省成本, 節省用戶驗證時間, 提升用戶體驗。
因此, 應該在姓名、身份證號的格式驗證上下更多工夫。
a.姓名格式驗證:國人的姓名, 大都為2~4位元中文字元, 所以驗證時應驗證其是否為中文、位數是否大於2位小於4位?當然, 上限可以適當提高, 畢竟有些人姓名真還挺長, 據說最長的有15位。 。 。
b.身份證號碼格式驗證:詳見下文。
2)身份證號碼位數
我國有過兩代身份證號碼:
一代為15位身份證號碼, 當時的國家標準為GB11643-1989《社會保障號碼》。 你看, 原來都不叫身份證號碼;
另一代為18位身份證號碼, 其國家標準為GB11643-1999《公民身份號碼》, 這就是我們現在廣為使用的身份證號碼。
從1999年後, 就開始逐步推行第二代身份證號碼, 那麼, 現在還有人在用第一代的15位身份證號碼嗎?我猜是有的, 雖然沒找到具體資料, 但在全國公民身份證號碼查詢服務中心看到了下圖這個查詢功能:
既然存在兩代身份證號碼?那就給我們帶來一個問題:是否需要對兩種身份證號碼都進行驗證?
解決方案:根據不同使用者, 確定驗證的身份證號碼位數。 對於多數用戶, 只需驗證18位身份證號碼。
為什麼?因為有足夠理由相信如今使用15位身份證號碼的人已經很少, 儘管沒找到具體資料。 理由吧, 有這麼幾點:
a.自1999年開始就在推行18位身份證號碼,
為什麼以16歲為起點?因為《中華人民共和國公安部令第43號》提到:
b.二代身份證的推行, 讓多數人已經用上了18位身份證號碼。 比如12306網站的這樣一條聲明, 就能說明目前使用二代身份證的人已占絕大多數。
c.而且, 就互聯網用戶來說, 那就更少, 因為互聯網用戶更為年輕, 對新事物也更容易接受。
3)身份證號碼規則
a.表示形式:如下圖, 下圖來自GB11643-1999《公民身份號碼》。
![](/images/lazyload.gif)
b.校驗碼:如下圖,下圖來自GB11643-1999《公民身份號碼》。
PS:下圖只提供了部分校驗碼的規則,其他位置的號碼規則不再提供,具體可以參見GB11643-1999《公民身份號碼》。
![](/images/lazyload.gif)
解決方案:按照身份證號碼的規則完成驗證,確定使用者輸入的身份證號碼格式是否正確。這和產品人關係不大,主要靠咱們無敵的開發哥哥。有興趣的,給你段代碼看看(其實代碼不是太難懂)。
其實,通過這一步,不僅保證了身份證號碼格式的正確性,也基本同時保證了其內容的正確性,因為身份證號的格式與內容相關性很強,校驗位正是通過前面各個位置號碼的內容來確定的。
綜上,通過產品自身檢驗使用者姓名、身份證號格式的正確性,驗證成功後,再調用官方系統的資料,就能很好地降低成本、減少驗證時間。
b.校驗碼:如下圖,下圖來自GB11643-1999《公民身份號碼》。
PS:下圖只提供了部分校驗碼的規則,其他位置的號碼規則不再提供,具體可以參見GB11643-1999《公民身份號碼》。
![](/images/lazyload.gif)
解決方案:按照身份證號碼的規則完成驗證,確定使用者輸入的身份證號碼格式是否正確。這和產品人關係不大,主要靠咱們無敵的開發哥哥。有興趣的,給你段代碼看看(其實代碼不是太難懂)。
其實,通過這一步,不僅保證了身份證號碼格式的正確性,也基本同時保證了其內容的正確性,因為身份證號的格式與內容相關性很強,校驗位正是通過前面各個位置號碼的內容來確定的。
綜上,通過產品自身檢驗使用者姓名、身份證號格式的正確性,驗證成功後,再調用官方系統的資料,就能很好地降低成本、減少驗證時間。