這個例子不是很全,要做到齊全必須使用資料庫字典來索引,而且資料量龐大,建議生產使用時限制幾大行就行,直接不支援其他小行。此案例拋磚引玉
/*** 銀行卡資訊識別相關類
* 把bin號轉化為長整形,再把各個銀行卡的bin號做成有序表。 通過二分查詢的方法,找到bin號在有序表的位置,然後讀出銀行卡的資訊。
* todo 字典不全,需要補充
* user: alu
* date: 2017/11/21
* time: 16:25
*/class bankinfo
return self::$bankname[$index];
}/**
* 二分查詢方法
* @param srcarray
* @param long des
* @return
*/public static function binarysearch(array $srcarray, int $des) else if ($des < $srcarray[$middle]) else
}return -1;
}/**
* 校驗銀行卡卡號
** @param cardid
* @return
*/public static function checkbankcard(string $cardid)
//最後一位
return $cardid[-1] == $bit;
}/**
* 從不含校驗位的銀行卡卡號採用 luhm 校驗演算法獲得校驗位
* @link
* @param noncheckcodecardid
* @return
*/private static function getbankcardcheckcode(string $noncheckcodecardid)
$chs = trim($noncheckcodecardid);
$luhmsum = 0;
for ($i = strlen($chs) - 1, $j = 0; $i >= 0; $i--, $j++)
$luhmsum += $k;
}return ($luhmsum % 10 == 0) ? '0' : ((10 - $luhmsum % 10) + '0');
}}
openCV銀行卡號識別
銀行卡的識別與車牌識別都是類似的,有了opencv方便了很多,許多函式都不要自己動手去寫。include stdafx.h include cv.h include highgui.h include cxcore.h int main int argc,char argv int tempcoun...
關於銀行卡號識別
絕大部分的銀行卡號遵循luhn演算法,luhn演算法簡述如下 luhn是著名的校驗和演算法也叫模10演算法,主要應用於解決銀行卡號,社保號等重要資訊傳輸出錯問題。先來解釋下演算法原理,校驗和型別的演算法,一般是id 校驗號,校驗號和id號的每位相關,如果出錯,通過某種運算能檢測出這種改動。借用維基百...
銀行卡卡號歸屬地彙總
卡號查詢 ascb 鞍山銀行 arcu 安徽省農村信用社 bjbank 北京銀行 bjrcb 北京農商行 bsb 包商銀行 bohaib 渤海銀行 bdcbank 保定銀行 bocfcb 中銀富登村鎮銀行 jkrfczyh 長春經開融豐村鎮銀行 crcbank 重慶農村商業銀行 csrcb 常熟農商...