銀行カード番号チェック——Luhnアルゴリズム
1270 ワード
もっと読む
銀行カード番号チェック——Luhnアルゴリズム
1.1 Luhn概要
Luhnアルゴリズム/公式は、「モデル10アルゴリズム」とも呼ばれ、銀行カード番号、IMEI番号などの証明書番号の識別検査によく使われる簡単な検査公式です.
Luhnアルゴリズムが存在する目的は、暗号化されたセキュリティのハッシュ関数ではなく、予期せぬ動作によるエラーを防ぐことにある.
Luhnアルゴリズム英文参照:https://en.wikipedia.org/wiki/Luhn_algorithm璖cite_note-0
1.2検証ルール
Luhnアルゴリズムは、最後のビットが検証コードである一列の数字の検証に使用され、以下の規則により検証コードの正確性を計算する.
1、右から左への順番で、この数字の右から、チェックコードを含めて偶数の数字を2倍にします.2を乗るたびに9より大きい場合(8のように).× 2=16)その後、1+6=7のような1桁と10桁の和を計算し、またはこの結果で9を減算します.
2、第一歩の操作後に新しい数字を取得し、すべての数字の和(チェックコードを含む)を計算します.
3、第二ステップの操作で得られたものと「モールド10」の演算を行い、結果が0であれば、検査が通ることを表します.そうでなければ失敗します.
1.3例
銀行カード番号チェック——Luhnアルゴリズム
1.1 Luhn概要
Luhnアルゴリズム/公式は、「モデル10アルゴリズム」とも呼ばれ、銀行カード番号、IMEI番号などの証明書番号の識別検査によく使われる簡単な検査公式です.
Luhnアルゴリズムが存在する目的は、暗号化されたセキュリティのハッシュ関数ではなく、予期せぬ動作によるエラーを防ぐことにある.
Luhnアルゴリズム英文参照:https://en.wikipedia.org/wiki/Luhn_algorithm璖cite_note-0
1.2検証ルール
Luhnアルゴリズムは、最後のビットが検証コードである一列の数字の検証に使用され、以下の規則により検証コードの正確性を計算する.
1、右から左への順番で、この数字の右から、チェックコードを含めて偶数の数字を2倍にします.2を乗るたびに9より大きい場合(8のように).× 2=16)その後、1+6=7のような1桁と10桁の和を計算し、またはこの結果で9を減算します.
2、第一歩の操作後に新しい数字を取得し、すべての数字の和(チェックコードを含む)を計算します.
3、第二ステップの操作で得られたものと「モールド10」の演算を行い、結果が0であれば、検査が通ることを表します.そうでなければ失敗します.
1.3例
function bankCheckCodeValidate(str) {
var sum=0,evenArr=[],oddArr=[];
var numArr=str.split("").reverse();
for(var i=0;i9 ? sum+=(evenArr[x]-9) : sum+=evenArr[x];
}
for(var k=0;k
1.4
Luhn , 09 90 。 ( 2 ↔ 55, 33 ↔ 66 44 ↔ 77 )。