計算cvn時使用二個64位的驗證金鑰,keya和keyb。
1) 計算cvn 的資料來源包含: 主賬號(pan)、卡失效期和服務**,從左至右順序編排。
4123456789012345+8701+111
2) 將上述資料來源擴充套件成128 位二進位制資料(不足128 位右補二進位制0)。
41234567890123458701111+000000000
3) 將128 位二進位制資料分成兩個64 位的資料塊。最左邊的64 位為block1,最右邊的64 位為 block2。
keya=0123456789abcdef ,block1=4123456789012345
4) 使用keya 對block1 進行加密。
3des_enc(block1, keya, enca)
enca = b76addce71ccc6be
5) 將block1 的加密結果與block2 進行異或。使用keya 對異或結果進行加密。
block2=8701111000000000
encb=xor(block2, enca)
encb=306bccde71ccc6be
3des_enc(encb, keya, encc)
encc=bae6746f6de1f0e6
keyb=fedcba9876543210
6) 使用keyb 對加密結果進行解密。
3des_de(encc, keyb, encd)
encd = b262abcb9de99a63
7) 使用keya 對解密結果進行加密。
3des_enc(encd, keya, ence)
ence=8d5625fa78011a0c
8) 從左至右將加密結果中的數字(0-9)抽出,組成一組數字。
ccrsn=85625780110
9) 從左至右將加密結果中的字元(a-f)抽出,減10 後將餘數組成一組數字,排列在步驟(8) 的數字之後。
ccrsa=dfaac
ccrsa-10=35002//每一位分別減10
rst=85625780110 35002
10)步驟(9)的左邊第一組三位數即為cvn 值。
cvn=856
演算法系列7《CVN》
計算cvn時使用二個64位的驗證金鑰,keya和keyb。1 計算cvn 的資料來源包括 主賬號 pan 卡失效期和服務 從左至右順序編排。4123456789012345 8701 111 2 將上述資料來源擴充套件成128 位二進位制資料 不足128 位右補二進位制0 4123456789012...
每日演算法系列 7
建立三個指標,分別指著head前乙個結點pre,head,head後乙個結點next。初始化pre,使得pre先指著位於鍊錶頭部外部空間,設為null,next也設為null但並不存在指向者。首先先將next指向head.next,用於儲存head的下乙個結點,使得鍊錶轉向不會因為鍊錶斷裂而丟失he...
演算法系列7 堆排序
堆排序 是指利用堆這種資料結構所涉及的一種排序演算法。堆積是乙個近似完全二叉樹的結構,並同時滿足堆積的性質 即子節點的鍵值或索引總是大於或者小於它的父節點 時間複雜度平均為o nlog2n 最好為o nlog2n 最壞o nlog2n 空間複雜度為o 1 不穩定排序 d0 99 5,36 7,22 ...