銀行卡號(hào)的編碼規(guī)則及校驗(yàn)

筆者目前使用的jdk版本是1.6.0_29撤师,Eclipse版本是Juno Release,Build id 20120614-1722盅弛。如無特殊說明,本文所有的Java代碼都是基于此夺艰。

修訂記錄

版本號(hào) 修訂日期 修訂說明
V0.1 2018/09/02 初稿
V1.0 2018/09/09 發(fā)布

參考資料

  1. 維基百科 https://en.wikipedia.org/wiki/Payment_card_number
  2. 維基百科 https://en.wikipedia.org/wiki/Luhn_algorithm
  3. ISO/IEC 7812-1-2017 Identification cards - Identification of issuers - Part 1: Numbering system
  4. 中華人民共和國金融行業(yè)標(biāo)準(zhǔn) JR/T 0008-2000 銀行卡發(fā)卡行標(biāo)識(shí)代碼及卡號(hào)
  5. GB/T 15694.1-1995 識(shí)別卡 發(fā)卡者標(biāo)識(shí) 第1部分:編號(hào)體系
  6. 銀聯(lián)標(biāo)準(zhǔn)卡的成長之路(來源:新浪財(cái)經(jīng),發(fā)布時(shí)間:2007年03月14日)

歷史背景

2000年沉衣,中國人民銀行為推動(dòng)聯(lián)網(wǎng)通用郁副,組織制定了一系列銀行卡業(yè)務(wù)規(guī)范和技術(shù)標(biāo)準(zhǔn)。其中《銀行卡發(fā)卡行標(biāo)識(shí)代碼及卡號(hào)》規(guī)定厢蒜,在國內(nèi)發(fā)行使用的各種人民幣卡必須使用“9”字頭BIN霞势。該規(guī)定為規(guī)范和統(tǒng)一銀行卡在國內(nèi)的發(fā)行烹植、使用及聯(lián)網(wǎng)通用奠定了基礎(chǔ)斑鸦。
?
隨著我國銀行卡產(chǎn)業(yè)的迅速發(fā)展以及國際交流的日益增加,持卡人的境外支付需求越來越多草雕。根據(jù)國際標(biāo)準(zhǔn)化組織(ISO)的規(guī)定巷屿,使用“9”字頭BIN的銀行卡只能在國內(nèi)使用。這意味著人民幣可自由兌換后墩虹,我國國內(nèi)各發(fā)卡機(jī)構(gòu)發(fā)行的大量“9”字頭BIN銀行卡屆時(shí)可能無法在國外使用薛窥『蓿“9”字頭BIN的銀行卡只能在國內(nèi)使用的局限性與廣大持卡人對(duì)境外用卡的支付需求之間的矛盾逐步顯現(xiàn)。
?
為了促進(jìn)民族銀行卡產(chǎn)業(yè)的健康持續(xù)發(fā)展,維護(hù)各發(fā)卡機(jī)構(gòu)的長遠(yuǎn)利益少梁,克服“9”字頭BIN的銀行卡境外使用的局限,在中國人民銀行的指導(dǎo)和幫助下麻顶,2002年巷折,中國銀聯(lián)代國內(nèi)各發(fā)卡機(jī)構(gòu)統(tǒng)一向ISO(國際標(biāo)準(zhǔn)化組織)申請(qǐng)了800個(gè)在國內(nèi)和國外通行的國際標(biāo)準(zhǔn)BIN(622126至622925)。在取得中國人民銀行關(guān)于啟用銀聯(lián)國際標(biāo)準(zhǔn)發(fā)卡行BIN號(hào)的批復(fù)后惧所,2003年7月骤坐,中國銀聯(lián)向各成員機(jī)構(gòu)發(fā)布了《關(guān)于啟用銀聯(lián)國際標(biāo)準(zhǔn)發(fā)卡行BIN號(hào)的函》,并且為了規(guī)范和合理地分配下愈、使用和管理銀聯(lián)國際標(biāo)準(zhǔn)BIN號(hào)和已經(jīng)廣為使用的原“9”字頭BIN號(hào)纽绍,中國銀聯(lián)發(fā)布了《銀聯(lián)標(biāo)識(shí)卡BIN號(hào)分配和管理暫行辦法》。從而正式啟動(dòng)了銀聯(lián)國際標(biāo)準(zhǔn)“62”字頭BIN號(hào)的分配和使用工作势似,推動(dòng)各家成員機(jī)構(gòu)開始發(fā)行銀聯(lián)標(biāo)準(zhǔn)卡拌夏,即具有“銀聯(lián)”標(biāo)識(shí),卡號(hào)前6位采用銀聯(lián)國際標(biāo)準(zhǔn)“62”字頭BIN號(hào)的銀行卡履因。該卡符合我國統(tǒng)一的業(yè)務(wù)規(guī)范和技術(shù)標(biāo)準(zhǔn)障簿,是我國具有自主知識(shí)產(chǎn)權(quán)的高品質(zhì)、國際化民族銀行卡品牌搓逾。

銀行卡號(hào)的編碼規(guī)則

銀行卡號(hào)由最多19位數(shù)字組成卷谈。

  1. 前6位數(shù)字被稱為發(fā)行者識(shí)別號(hào)碼(Issuer Identification Number,縮寫為IIN)霞篡,也稱為發(fā)卡行識(shí)別碼(Bank Identification Number世蔗,簡稱BIN)端逼,常說的卡BIN就是指它,由中國銀聯(lián)代國內(nèi)各發(fā)卡機(jī)構(gòu)統(tǒng)一向ISO申請(qǐng)污淋。6位IIN的第一位顶滩,是主要行業(yè)標(biāo)識(shí)符(Major industry identifier,縮寫為MII)寸爆,分配如下:
    • 0 - ISO/TC 68和其他行業(yè)分配
    • 1 - 航空業(yè)
    • 2 - 航空業(yè)礁鲁,金融業(yè)和其他未來行業(yè)分配
    • 3- 旅游業(yè)和娛樂業(yè)
    • 4 - 銀行業(yè)和金融業(yè)
    • 5 - 銀行業(yè)和金融業(yè)
    • 6 - 商業(yè)和銀行業(yè)/金融業(yè)
    • 7 - 石油業(yè)和其他未來行業(yè)分配
    • 8 - 醫(yī)療業(yè),電信業(yè)和其他未來行業(yè)分配
    • 9 - 由各國標(biāo)準(zhǔn)團(tuán)體分配
  2. 中間的7~18位由發(fā)卡行自定義赁豆,表示不同的個(gè)人賬戶號(hào)碼仅醇,最大12位;
  3. 最后1位是校驗(yàn)碼魔种,使用Luhn算法計(jì)算析二。

需要注意:2017年發(fā)布的ISO/IEC 7812-1中,刪除了對(duì)MII的定義描述节预,并將IIN碼由6位擴(kuò)展到了8位叶摄,但是由于總位數(shù)仍然最多19位,所以中間的個(gè)人賬戶號(hào)碼對(duì)應(yīng)的最大位數(shù)由12位減少至10位安拟。所以卡BIN不再只是6位蛤吓,也需要考慮兼容8位。

Luhn算法

Luhn算法糠赦,也稱為“模10”算法会傲,是一種簡單的校驗(yàn)和(Checksum)算法,一般用于驗(yàn)證身份識(shí)別號(hào)碼愉棱,例如信用卡號(hào)碼唆铐、國際移動(dòng)設(shè)備識(shí)別碼(International Mobile Equipment Identity,縮寫為IMEI)奔滑,美國供應(yīng)商識(shí)別號(hào)碼艾岂,加拿大社會(huì)保險(xiǎn)號(hào)碼,以色列身份證號(hào)碼朋其,希臘社會(huì)安全號(hào)碼等王浴。

Luhn算法在ISO/IEC 7812-1中定義,它不是一種安全的加密哈希函數(shù)梅猿,設(shè)計(jì)它的目的只是防止意外出錯(cuò)而不是惡意攻擊氓辣,即我們常說的防君子不防小人。

使用Luhn算法校驗(yàn)的步驟:

  1. 從右邊第1個(gè)數(shù)字(校驗(yàn)數(shù)字)開始偶數(shù)位乘以2袱蚓;
  2. 把步驟1種獲得的乘積的各位數(shù)字與原號(hào)碼中未乘2的各位數(shù)字相加钞啸;
  3. 如果步驟2得到的總和模10為0,則校驗(yàn)通過。

舉例說明:

筆者一張過期的信用卡號(hào)碼為6225760008219524体斩,根據(jù)上述步驟進(jìn)行校驗(yàn)。

序號(hào) 卡號(hào) 步驟1 步驟2 步驟3
16 6 6 × 2 = 12 1 + 2 = 3
15 2 2 + 2 = 5
14 2 2 × 2 = 4 + 4 = 9
13 5 5 + 5 = 14
12 7 7 × 2 = 14 + 1 + 4 = 19
11 6 6 + 6 = 25
10 0 0 × 2 = 0 + 0 = 25
9 0 0 + 0 = 25
8 0 0 × 2 = 0 + 0 = 25
7 8 8 + 8 = 33
6 2 2 × 2 = 4 + 4 = 37
5 1 1 + 1 = 38
4 9 9 × 2 = 18 + 1 + 8 = 47
3 5 5 + 5 = 52
2 2 2× 2 = 4 + 4 = 56
1 4 4 + 4 = 60

60 % 10 = 0絮吵,校驗(yàn)通過弧烤。大家可以據(jù)此嘗試校驗(yàn)自己的銀行卡號(hào)。

了解Lunh算法校驗(yàn)銀行卡號(hào)的方法后蹬敲,很容易推導(dǎo)出使用Luhn算法計(jì)算數(shù)字字符串的校驗(yàn)數(shù)字的方法暇昂,仍然以上述銀行卡號(hào)為例,去掉校驗(yàn)數(shù)字后伴嗡,剩余622576000821952急波,假設(shè)校驗(yàn)數(shù)字為x,仍然根據(jù)上述步驟計(jì)算闹究。

序號(hào) 卡號(hào) 步驟1 步驟2 步驟3
16 6 6 × 2 = 12 1 + 2 = 3
15 2 2 + 2 = 5
14 2 2 × 2 = 4 + 4 = 9
13 5 5 + 5 = 14
12 7 7 × 2 = 14 + 1 + 4 = 19
11 6 6 + 6 = 25
10 0 0 × 2 = 0 + 0 = 25
9 0 0 + 0 = 25
8 0 0 × 2 = 0 + 0 = 25
7 8 8 + 8 = 33
6 2 2 × 2 = 4 + 4 = 37
5 1 1 + 1 = 38
4 9 9 × 2 = 18 + 1 + 8 = 47
3 5 5 + 5 = 52
2 2 2× 2 = 4 + 4 = 56
1 x x + x = 56 + x

若要等式 ( 56 + x ) % 10 = 0 成立幔崖,很容易得到x = 4,與實(shí)際銀行卡號(hào)相符渣淤。

代碼實(shí)現(xiàn)如下:

/**
 * Luhn算法工具類
 * <p>
 * Luhn算法在ISO/IEC 7812-1中定義,使用Luhn算法進(jìn)行字符串的校驗(yàn)以及生成校驗(yàn)數(shù)字
 * </p>
 * 
 */
public class LuhnUtil {

    /**
     * 校驗(yàn)字符串
     * <p>
     * 1. 從右邊第1個(gè)數(shù)字(校驗(yàn)數(shù)字)開始偶數(shù)位乘以2吉嫩;<br>
     * 2. 把在步驟1種獲得的乘積的各位數(shù)字與原號(hào)碼中未乘2的各位數(shù)字相加价认;<br>
     * 3. 如果在步驟2得到的總和模10為0,則校驗(yàn)通過自娩。
     * </p>
     * 
     * @param withCheckDigitString 含校驗(yàn)數(shù)字的字符串
     * @return true - 校驗(yàn)通過<br>
     *         false-校驗(yàn)不通過
     * @throws IllegalArgumentException 如果字符串為空或不是8~19位的數(shù)字
     */
    public static boolean checkString(String withCheckDigitString) {
        if (withCheckDigitString == null) {
            throw new IllegalArgumentException();
        }
        // 6位IIN+最多12位自定義數(shù)字+1位校驗(yàn)數(shù)字
        // 注意ISO/IEC 7812-1:2017中重新定義8位IIN+最多10位自定義數(shù)字+1位校驗(yàn)數(shù)字
        // 這里為了兼容2017之前的版本用踩,使用8~19位數(shù)字校驗(yàn)
        if (!withCheckDigitString.matches("^\\d{8,19}$")) {
            throw new IllegalArgumentException();
        }
        return sum(withCheckDigitString) % 10 == 0;
    }

    /**
     * 計(jì)算校驗(yàn)數(shù)字
     * <p>
     * 1. 從右邊第1個(gè)數(shù)字(校驗(yàn)數(shù)字)開始偶數(shù)位乘以2;<br>
     * 2. 把在步驟1種獲得的乘積的各位數(shù)字與原號(hào)碼中未乘2的各位數(shù)字相加忙迁;<br>
     * 3. 用10減去在步驟2得到的總和模10脐彩,得到校驗(yàn)數(shù)字。
     * </p>
     * 
     * @param withoutCheckDigitString 不含校驗(yàn)數(shù)字的字符串
     * @return 校驗(yàn)數(shù)字
     * @throws IllegalArgumentException 如果字符串為空或不是7~18位的數(shù)字
     */
    public static int computeCheckDigit(String withoutCheckDigitString) {
        if (withoutCheckDigitString == null) {
            throw new IllegalArgumentException();
        }
        // 6位IIN+最多12位自定義數(shù)字
        // 注意ISO/IEC 7812-1:2017中重新定義8位IIN+最多10位自定義數(shù)字
        // 這里為了兼容2017之前的版本姊扔,使用7~18位數(shù)字校驗(yàn)
        if (!withoutCheckDigitString.matches("^\\d{7,18}$")) {
            throw new IllegalArgumentException();
        }
        // 因?yàn)槭遣缓r?yàn)數(shù)字的字符串惠奸,為了統(tǒng)一sum方法,在后面補(bǔ)0恰梢,不會(huì)影響計(jì)算
        return 10 - sum(withoutCheckDigitString + "0") % 10;
    }

    /**
     * 根據(jù)Luhn算法計(jì)算字符串各位數(shù)字之和
     * <p>
     * 1. 從右邊第1個(gè)數(shù)字(校驗(yàn)數(shù)字)開始偶數(shù)位乘以2佛南;<br>
     * 2. 把在步驟1種獲得的乘積的各位數(shù)字與原號(hào)碼中未乘2的各位數(shù)字相加。<br>
     * </p>
     * 
     * @param str
     * @return
     */
    private static int sum(String str) {
        char[] strArray = str.toCharArray();
        int n = strArray.length;
        int sum = 0;
        for (int i = n; i >= 1; i--) {
            int a = strArray[n - i] - '0';
            // 偶數(shù)位乘以2
            if (i % 2 == 0) {
                a *= 2;
            }
            // 十位數(shù)和個(gè)位數(shù)相加嵌言,如果不是偶數(shù)位嗅回,不乘以2,則十位數(shù)為0
            sum = sum + a / 10 + a % 10;
        }
        return sum;
    }
}

實(shí)際應(yīng)用

銀行卡信息查詢

在金融行業(yè)軟件系統(tǒng)中摧茴,銀行卡號(hào)可謂是重要元素绵载,但是,銀行卡號(hào)本身承載的信息并不多,從上面講述的內(nèi)容來看娃豹,卡BIN是我們可以從銀行卡號(hào)中獲取的唯一信息猜惋,然而,卡BIN對(duì)于絕大多數(shù)人來說培愁,使用起來并不友好著摔,因?yàn)橛成潢P(guān)系并不容易獲取。

當(dāng)然定续,互聯(lián)網(wǎng)上內(nèi)容包羅萬象谍咆,區(qū)區(qū)卡BIN何足掛齒,網(wǎng)站私股、論壇到處都可下載摹察,不過很多人忽略了一個(gè)問題,卡BIN是需要更新的倡鲸,互聯(lián)網(wǎng)上可以輕易下載到的卡BIN只是某個(gè)時(shí)間的快照供嚎,實(shí)效性難以保證。

筆者還看到有人提及支付寶的查詢接口(https://ccdcapi.alipay.com/validateAndCacheCardInfo.json?cardNo=6225760008219524&cardBinCheck=true)峭状,筆者使用之前的過期卡號(hào)克滴,接口返回cardType="CC"表示信用卡,bank="CMB"表示招商銀行优床。支付寶作為國內(nèi)最大的第三方支付平臺(tái)劝赔,其卡BIN的準(zhǔn)確性與實(shí)效性理論上可以得到保證,但是筆者并不清楚其卡BIN來源胆敞,估計(jì)是銀行或銀聯(lián)着帽。

數(shù)據(jù)從源頭獲取,準(zhǔn)確性與實(shí)效性必然更勝一籌移层,筆者這里要推薦的卡BIN查詢接口正是銀聯(lián)提供仍翰,銀聯(lián)在其開放平臺(tái)(https://open.unionpay.com/)提供了若干接口,其中就包括了銀行卡信息查詢(https://open.unionpay.com/tjweb/api/detail?apiSvcId=51)接口观话,該接口可以根據(jù)銀行卡卡號(hào)予借,返回發(fā)卡行、發(fā)卡行機(jī)構(gòu)代碼匪燕、卡性質(zhì)蕾羊、卡類別、卡種帽驯、卡品牌龟再、卡產(chǎn)品、卡等級(jí)尼变、卡介質(zhì)利凑、所屬總行機(jī)構(gòu)中文名稱浆劲、所屬總行機(jī)構(gòu)中文簡稱。

接口返回的內(nèi)容可以說是相當(dāng)全面了哀澈,但是筆者開發(fā)項(xiàng)目中并未使用過該接口牌借,因此不能擔(dān)保其性能,不過銀聯(lián)的權(quán)威性毋庸置疑割按,如需商業(yè)合作可以放心致電洽談膨报,銀聯(lián)的服務(wù)還是很專業(yè)的。

資費(fèi)詳情:本產(chǎn)品推廣期為2017年10月1日至2018年9月30日适荣,推廣期內(nèi)本產(chǎn)品可免費(fèi)使用现柠。推廣期過后的收費(fèi)標(biāo)準(zhǔn)將提前30個(gè)工作日在本平臺(tái)另行公示。

到目前為止弛矛,筆者沒有看到收費(fèi)標(biāo)準(zhǔn)公示够吩,是否可以理解為仍然可以免費(fèi)使用?

驗(yàn)證銀行卡信息

銀聯(lián)開放平臺(tái)(https://open.unionpay.com/)同時(shí)為我們提供了另外一個(gè)優(yōu)秀的接口丈氓,驗(yàn)證銀行卡信息(https://open.unionpay.com/tjweb/api/detail?apiSvcId=21)周循。我們可以通過以下5種方式進(jìn)行驗(yàn)證,靈活組合万俗,按需選擇:

  • 兩要素:銀行卡號(hào)+姓名
  • 兩要素:銀行卡號(hào)+身份證號(hào)
  • 三要素:銀行卡號(hào)+姓名+身份證號(hào)
  • 四要素:銀行卡號(hào)+姓名+身份證號(hào)+銀行預(yù)留手機(jī)號(hào)
  • 六要素:銀行卡號(hào)+姓名+身份證號(hào)+銀行預(yù)留手機(jī)號(hào)+CVN2+有效期

根據(jù)個(gè)人項(xiàng)目經(jīng)驗(yàn)湾笛,推薦借記卡使用四要素驗(yàn)證,貸記卡使用六要素驗(yàn)證该编,畢竟驗(yàn)證要素越多迄本,驗(yàn)證就越可靠。

程序設(shè)計(jì)

有了Luhn算法以及銀聯(lián)開放平臺(tái)提供的2個(gè)接口课竣,我們應(yīng)該如何設(shè)計(jì)我們的程序(產(chǎn)品)呢?

  1. 對(duì)輸入要素進(jìn)行初步校驗(yàn)
    ?
    使用Luhn算法校驗(yàn)銀行卡號(hào)置媳,使用上篇身份證號(hào)碼的編碼規(guī)則及校驗(yàn)介紹的公式校驗(yàn)身份證號(hào)于樟。
    \sum_{i=1}^{18} ( a_{i} \times W_{i} ) \equiv 1 \pmod{11}

  2. 銀行預(yù)留手機(jī)號(hào)的校驗(yàn)
    ?
    這里需要注意的是:銀行預(yù)留手機(jī)號(hào),有時(shí)候你認(rèn)為預(yù)留了拇囊,但是可能沒有預(yù)留迂曲。如果客戶堅(jiān)持自己填寫信息無誤,那么請(qǐng)客戶致電銀行查詢預(yù)留手機(jī)號(hào)是解決問題的一個(gè)思路寥袭。
    ?
    這里說的銀行預(yù)留手機(jī)號(hào)的校驗(yàn)路捧,主要是為了校驗(yàn)手機(jī)是否在客戶本人身上,可以通過短信驗(yàn)證碼的方式校驗(yàn)传黄,其必要性:一是杰扫,從安全性出發(fā),手機(jī)的竊取往往比銀行卡相關(guān)信息的竊取成本更高膘掰;二是章姓,畢竟銀聯(lián)開放平臺(tái)提供的2個(gè)接口后續(xù)使用過程中極有可能都是需要收費(fèi)的,一條短信的價(jià)格往往更加便宜,優(yōu)先排除掉不合格的信息凡伊,從而提高后續(xù)驗(yàn)證的成功率零渐。
    ?

  3. 調(diào)用銀行卡信息查詢接口
    ?
    經(jīng)過初步的信息校驗(yàn)通過,我們可以調(diào)用銀聯(lián)的第1個(gè)接口了系忙,銀行卡信息查詢诵盼,銀聯(lián)返回的信息比較全面,筆者的建議是全部記錄下來银还,當(dāng)系統(tǒng)中積累的銀行卡數(shù)據(jù)足夠多的時(shí)候风宁,通過一定的數(shù)據(jù)分析手段,恭喜你见剩,你擁有了自己的卡BIN數(shù)據(jù)杀糯,每月更新一次,足矣苍苞。
    ?
    從這個(gè)接口固翰,可以看出銀聯(lián)的高明之處,它不直接告訴你卡BIN羹呵,讓你每次都要調(diào)用它的接口查詢骂际,授人以漁何以授人以魚。(大家在制定接口時(shí)冈欢,要注意:從安全性和不可替代性出發(fā)歉铝,核心數(shù)據(jù)不能泄露,盡量使用驗(yàn)證代替查詢凑耻,這樣也有利于提高接口使用率太示,增加用戶粘性;同時(shí)香浩,記錄盡量多的請(qǐng)求方數(shù)據(jù)类缤,便于日后的數(shù)據(jù)分析,也符合當(dāng)前大數(shù)據(jù)的趨勢(shì)邻吭。
    ?
    調(diào)用這個(gè)接口餐弱,一方面可以積累數(shù)據(jù),另一方面可以確定客戶的銀行卡性質(zhì)囱晴,是借記卡還是貸記卡膏蚓;借記卡和貸記卡在進(jìn)行驗(yàn)證時(shí),驗(yàn)證要素略有差異畸写,筆者開發(fā)項(xiàng)目過程中接觸的銀行卡驗(yàn)證驮瞧,除了銀行卡號(hào)、姓名艺糜、身份證號(hào)剧董、手機(jī)號(hào)四要素之外幢尚,借記卡可以額外驗(yàn)證密碼,貸記卡可以額外驗(yàn)證CVN2翅楼、有效期尉剩,目前發(fā)行的芯片借記卡也有CVN2、有效期毅臊,但是筆者項(xiàng)目中從來沒有對(duì)此驗(yàn)證過理茎,不知銀聯(lián)這個(gè)接口是否可以驗(yàn)證。
    ?
    有時(shí)管嬉,為了提升客戶體驗(yàn)皂林,借記卡的密碼,貸記卡的CVN2蚯撩、有效期也不做驗(yàn)證础倍。便利性與安全性是需要互相妥協(xié)的,但是它們不是魚與熊掌胎挎,通過技術(shù)手段完全可以魚與熊掌兼得沟启。
    ?

  4. 調(diào)用驗(yàn)證銀行卡信息接口
    ?
    最后,我們終于可以調(diào)用銀聯(lián)的第2個(gè)接口了犹菇。

數(shù)據(jù)安全存儲(chǔ)

到這里德迹,你以為結(jié)束了嗎?其實(shí)還沒有揭芍,還有一個(gè)重要的問題胳搞,那就是數(shù)據(jù)安全存儲(chǔ)。

  1. 銀行卡號(hào)称杨,身份證號(hào)肌毅,手機(jī)號(hào),建議加密存儲(chǔ)姑原;
  2. 借記卡密碼芽腾,貸記卡CVN2、有效期页衙,建議不存儲(chǔ);
  3. 數(shù)據(jù)安全存儲(chǔ)阴绢,不單單指數(shù)據(jù)庫店乐,建議肉眼可見的介質(zhì)之上都做安全存儲(chǔ),比如應(yīng)用程序日志呻袭、數(shù)據(jù)同步文件等;
  4. 數(shù)據(jù)傳輸過程中眨八,理應(yīng)也如此,銀聯(lián)接口中CVN2左电、有效期就要求RSA加密廉侧。

信息安全页响,多管齊下,CSDN段誊、攜程闰蚕、華住的悲劇才不會(huì)繼續(xù)上演。

數(shù)據(jù)加密算法相關(guān)內(nèi)容连舍,后續(xù)會(huì)開辟新篇專題交流没陡。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市索赏,隨后出現(xiàn)的幾起案子盼玄,更是在濱河造成了極大的恐慌,老刑警劉巖潜腻,帶你破解...
    沈念sama閱讀 222,000評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件埃儿,死亡現(xiàn)場離奇詭異,居然都是意外死亡融涣,警方通過查閱死者的電腦和手機(jī)童番,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,745評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來暴心,“玉大人妓盲,你說我怎么就攤上這事∽ㄆ眨” “怎么了悯衬?”我有些...
    開封第一講書人閱讀 168,561評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長檀夹。 經(jīng)常有香客問我筋粗,道長,這世上最難降的妖魔是什么炸渡? 我笑而不...
    開封第一講書人閱讀 59,782評(píng)論 1 298
  • 正文 為了忘掉前任娜亿,我火速辦了婚禮,結(jié)果婚禮上蚌堵,老公的妹妹穿的比我還像新娘买决。我一直安慰自己,他們只是感情好吼畏,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,798評(píng)論 6 397
  • 文/花漫 我一把揭開白布督赤。 她就那樣靜靜地躺著,像睡著了一般泻蚊。 火紅的嫁衣襯著肌膚如雪躲舌。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,394評(píng)論 1 310
  • 那天性雄,我揣著相機(jī)與錄音没卸,去河邊找鬼羹奉。 笑死,一個(gè)胖子當(dāng)著我的面吹牛约计,可吹牛的內(nèi)容都是我干的诀拭。 我是一名探鬼主播,決...
    沈念sama閱讀 40,952評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼病蛉,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼炫加!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起铺然,我...
    開封第一講書人閱讀 39,852評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤俗孝,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后魄健,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體赋铝,經(jīng)...
    沈念sama閱讀 46,409評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,483評(píng)論 3 341
  • 正文 我和宋清朗相戀三年沽瘦,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了革骨。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,615評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡析恋,死狀恐怖良哲,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情助隧,我是刑警寧澤筑凫,帶...
    沈念sama閱讀 36,303評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站并村,受9級(jí)特大地震影響巍实,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜哩牍,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,979評(píng)論 3 334
  • 文/蒙蒙 一棚潦、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧膝昆,春花似錦丸边、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,470評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至处窥,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間玄组,已是汗流浹背滔驾。 一陣腳步聲響...
    開封第一講書人閱讀 33,571評(píng)論 1 272
  • 我被黑心中介騙來泰國打工谒麦, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人哆致。 一個(gè)月前我還...
    沈念sama閱讀 49,041評(píng)論 3 377
  • 正文 我出身青樓绕德,卻偏偏與公主長得像,于是被迫代替她去往敵國和親摊阀。 傳聞我的和親對(duì)象是個(gè)殘疾皇子耻蛇,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,630評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容