銀行科技部筆試題及答案_第1頁(yè)
銀行科技部筆試題及答案_第2頁(yè)
銀行科技部筆試題及答案_第3頁(yè)
銀行科技部筆試題及答案_第4頁(yè)
銀行科技部筆試題及答案_第5頁(yè)
已閱讀5頁(yè),還剩19頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

銀行科技部筆試題及答案一、技術(shù)基礎(chǔ)題1.簡(jiǎn)述OSI參考模型的七層結(jié)構(gòu),并說(shuō)明TCP/IP協(xié)議棧與OSI模型的對(duì)應(yīng)關(guān)系。答案:OSI模型分為物理層(傳輸比特流)、數(shù)據(jù)鏈路層(封裝幀,處理MAC地址)、網(wǎng)絡(luò)層(IP尋址與路由)、傳輸層(端到端可靠傳輸,如TCP/UDP)、會(huì)話層(建立/管理/終止會(huì)話)、表示層(數(shù)據(jù)格式轉(zhuǎn)換、加密)、應(yīng)用層(用戶(hù)接口,如HTTP、SMTP)。TCP/IP協(xié)議棧簡(jiǎn)化為四層:網(wǎng)絡(luò)接口層(對(duì)應(yīng)OSI物理層+數(shù)據(jù)鏈路層)、網(wǎng)際層(網(wǎng)絡(luò)層)、傳輸層(傳輸層)、應(yīng)用層(會(huì)話層+表示層+應(yīng)用層)。2.進(jìn)程與線程的本質(zhì)區(qū)別是什么?在銀行核心交易系統(tǒng)中,為何通常采用多線程而非多進(jìn)程設(shè)計(jì)?答案:進(jìn)程是資源分配的基本單位,擁有獨(dú)立的內(nèi)存空間、文件描述符等資源;線程是CPU調(diào)度的基本單位,共享進(jìn)程的資源。銀行核心交易系統(tǒng)需高并發(fā)處理(如每秒上萬(wàn)筆轉(zhuǎn)賬),多線程相比多進(jìn)程的優(yōu)勢(shì)在于:線程切換僅涉及寄存器和??臻g,開(kāi)銷(xiāo)遠(yuǎn)小于進(jìn)程切換;共享內(nèi)存避免了進(jìn)程間復(fù)雜的IPC(如消息隊(duì)列、共享內(nèi)存)通信,提升交易處理效率;多線程更易利用多核CPU的并行計(jì)算能力,符合銀行系統(tǒng)對(duì)低延遲的要求。3.請(qǐng)列舉常見(jiàn)的排序算法及其時(shí)間復(fù)雜度(最好、平均、最壞),并說(shuō)明快速排序在銀行日志分析場(chǎng)景中的適用性。答案:常見(jiàn)排序算法及時(shí)間復(fù)雜度:-冒泡排序:O(n)、O(n2)、O(n2)-插入排序:O(n)、O(n2)、O(n2)-選擇排序:O(n2)、O(n2)、O(n2)-快速排序:O(nlogn)、O(nlogn)、O(n2)(需隨機(jī)化優(yōu)化避免最壞情況)-歸并排序:O(nlogn)、O(nlogn)、O(nlogn)-堆排序:O(nlogn)、O(nlogn)、O(nlogn)銀行日志分析需對(duì)大量時(shí)間戳或交易ID進(jìn)行排序,快速排序平均時(shí)間復(fù)雜度低且原地排序(空間復(fù)雜度O(logn)),適合內(nèi)存受限場(chǎng)景。盡管最壞情況為O(n2),但通過(guò)隨機(jī)選擇樞軸(pivot)可將概率降至極低,因此在日志量極大(如億級(jí))時(shí)仍能保持高效。4.簡(jiǎn)述虛擬內(nèi)存的工作原理及其對(duì)銀行核心系統(tǒng)的意義。答案:虛擬內(nèi)存通過(guò)將進(jìn)程的邏輯地址空間與物理內(nèi)存分離,利用磁盤(pán)作為內(nèi)存擴(kuò)展。當(dāng)物理內(nèi)存不足時(shí),將不活躍的頁(yè)(page)換出到磁盤(pán)(對(duì)換區(qū)),需要時(shí)再換入。對(duì)銀行系統(tǒng)的意義:-允許單個(gè)進(jìn)程使用遠(yuǎn)超物理內(nèi)存的地址空間(如處理TB級(jí)交易數(shù)據(jù));-隔離不同進(jìn)程的地址空間,避免進(jìn)程間數(shù)據(jù)污染(核心交易進(jìn)程與日志進(jìn)程互不干擾);-通過(guò)頁(yè)表機(jī)制實(shí)現(xiàn)內(nèi)存訪問(wèn)控制,增強(qiáng)系統(tǒng)安全性(如限制非授權(quán)模塊訪問(wèn)客戶(hù)敏感數(shù)據(jù))。5.解釋緩存穿透、緩存擊穿、緩存雪崩的區(qū)別,并給出銀行用戶(hù)信息查詢(xún)場(chǎng)景中的預(yù)防措施。答案:-緩存穿透:查詢(xún)不存在于緩存且不存在于數(shù)據(jù)庫(kù)的數(shù)據(jù)(如查詢(xún)用戶(hù)ID=-1),導(dǎo)致每次請(qǐng)求都穿透到數(shù)據(jù)庫(kù)。-緩存擊穿:熱點(diǎn)鍵(如高頻查詢(xún)的用戶(hù)信息)在緩存中過(guò)期,導(dǎo)致瞬時(shí)大量請(qǐng)求直連數(shù)據(jù)庫(kù)。-緩存雪崩:大量緩存鍵同時(shí)過(guò)期或緩存服務(wù)器宕機(jī),引發(fā)數(shù)據(jù)庫(kù)壓力激增。預(yù)防措施:-緩存穿透:對(duì)不存在的鍵緩存空值(設(shè)置短過(guò)期時(shí)間),或使用布隆過(guò)濾器(BloomFilter)預(yù)校驗(yàn)數(shù)據(jù)是否存在。-緩存擊穿:對(duì)熱點(diǎn)鍵設(shè)置永不過(guò)期(邏輯過(guò)期),或使用互斥鎖(如Redis的setnx)保證僅一個(gè)線程回源加載。-緩存雪崩:分散緩存鍵的過(guò)期時(shí)間(如在基礎(chǔ)時(shí)間±隨機(jī)值),采用主從+哨兵或集群架構(gòu)提升緩存高可用性。二、數(shù)據(jù)庫(kù)與SQL題1.寫(xiě)出SQL語(yǔ)句:查詢(xún)2023年1月1日至2023年12月31日期間,交易金額大于1000元且交易類(lèi)型為“轉(zhuǎn)賬”的客戶(hù),按客戶(hù)ID分組,統(tǒng)計(jì)每組的交易筆數(shù)和總金額,結(jié)果按總金額降序排列。(表結(jié)構(gòu):交易表trade,字段:trade_id(主鍵)、customer_id(客戶(hù)ID)、trade_date(交易時(shí)間)、amount(金額)、trade_type(類(lèi)型))答案:```sqlSELECTcustomer_id,COUNT(trade_id)AStrade_count,SUM(amount)AStotal_amountFROMtradeWHEREtrade_dateBETWEEN'2023-01-01'AND'2023-12-31'ANDamount>1000ANDtrade_type='轉(zhuǎn)賬'GROUPBYcustomer_idORDERBYtotal_amountDESC;```2.分析以下SQL語(yǔ)句可能存在的性能問(wèn)題,并提出優(yōu)化建議。```sqlSELECTu.user_name,t.trade_amountFROMuseruLEFTJOINtradetONu.user_id=t.user_idWHEREt.trade_date>'2023-01-01'ANDu.regionsIN('北京','上海','廣州');```答案:性能問(wèn)題:-LEFTJOIN后使用t.trade_date過(guò)濾,會(huì)導(dǎo)致LEFTJOIN失效(實(shí)際變?yōu)镮NNERJOIN),且可能掃描大量無(wú)效數(shù)據(jù)。-若user表的regions字段未建立索引,IN條件過(guò)濾效率低;trade表的trade_date和user_id聯(lián)合索引可能缺失。優(yōu)化建議:-將t.trade_date條件移至JOIN子句,明確LEFTJOIN語(yǔ)義:```sqlSELECTu.user_name,t.trade_amountFROMuseruLEFTJOINtradetONu.user_id=t.user_idANDt.trade_date>'2023-01-01'WHEREu.regionsIN('北京','上海','廣州');```-為user表的regions字段創(chuàng)建索引;為trade表創(chuàng)建(user_id,trade_date)聯(lián)合索引,覆蓋JOIN條件和過(guò)濾條件。3.解釋數(shù)據(jù)庫(kù)事務(wù)的ACID特性,并說(shuō)明“可重復(fù)讀”隔離級(jí)別如何解決“不可重復(fù)讀”問(wèn)題,可能引入什么新問(wèn)題?答案:ACID特性:-原子性(Atomicity):事務(wù)要么全執(zhí)行,要么全回滾;-一致性(Consistency):事務(wù)執(zhí)行前后數(shù)據(jù)庫(kù)狀態(tài)合法;-隔離性(Isolation):事務(wù)間互不干擾;-持久性(Durability):提交的事務(wù)結(jié)果永久保存?!翱芍貜?fù)讀”通過(guò)MVCC(多版本并發(fā)控制)或行鎖,保證同一事務(wù)內(nèi)多次讀取同一記錄的結(jié)果一致。例如,事務(wù)T1讀取記錄A=100后,事務(wù)T2修改A=200并提交,T1再次讀取A仍為100(讀取歷史版本)。但此隔離級(jí)別可能導(dǎo)致“幻讀”:T1查詢(xún)符合條件的記錄數(shù)為5條,T2插入一條符合條件的記錄并提交,T1再次查詢(xún)時(shí)記錄數(shù)變?yōu)?條(歷史版本不包含新插入的記錄)。4.銀行核心系統(tǒng)需支持每秒10萬(wàn)+的轉(zhuǎn)賬交易,傳統(tǒng)單機(jī)MySQL無(wú)法滿(mǎn)足,需引入分布式數(shù)據(jù)庫(kù)。請(qǐng)比較MySQL與TiDB在分布式架構(gòu)上的差異,并說(shuō)明TiDB如何支持高并發(fā)轉(zhuǎn)賬場(chǎng)景。答案:架構(gòu)差異:-MySQL:主從復(fù)制架構(gòu),寫(xiě)操作集中在主庫(kù),擴(kuò)展能力有限(單庫(kù)單表存在性能瓶頸);-TiDB:采用“計(jì)算-存儲(chǔ)分離”架構(gòu),TiDBServer(計(jì)算層)負(fù)責(zé)SQL解析與執(zhí)行,TiKV(存儲(chǔ)層)通過(guò)Raft協(xié)議管理數(shù)據(jù)分片(Region),支持水平擴(kuò)展。TiDB支持高并發(fā)轉(zhuǎn)賬的關(guān)鍵:-分布式事務(wù):通過(guò)Percolator模型實(shí)現(xiàn)跨行/跨表事務(wù),保證ACID特性(如轉(zhuǎn)賬時(shí)扣減A賬戶(hù)、增加B賬戶(hù)的原子性);-自動(dòng)分片:數(shù)據(jù)按Range或Hash分片,流量分散到多個(gè)TiKV節(jié)點(diǎn),避免熱點(diǎn)(如春節(jié)紅包場(chǎng)景中高頻賬戶(hù)的分片自動(dòng)拆分);-讀寫(xiě)分離:TiDBServer可路由讀請(qǐng)求到TiKV的follower節(jié)點(diǎn),提升讀并發(fā)能力;-彈性擴(kuò)縮容:業(yè)務(wù)高峰時(shí)可動(dòng)態(tài)添加TiDBServer或TiKV節(jié)點(diǎn),無(wú)需停機(jī)。5.索引是數(shù)據(jù)庫(kù)性能優(yōu)化的關(guān)鍵。請(qǐng)列舉索引失效的5種常見(jiàn)場(chǎng)景,并說(shuō)明在銀行客戶(hù)信息表(字段:id主鍵,name,id_card,mobile,create_time)中,如何為“根據(jù)身份證號(hào)查詢(xún)客戶(hù)姓名”的場(chǎng)景設(shè)計(jì)索引。答案:索引失效場(chǎng)景:-條件字段使用函數(shù)(如WHEREYEAR(create_time)=2023);-左模糊查詢(xún)(如LIKE'%張%');-字段類(lèi)型隱式轉(zhuǎn)換(如WHEREmobile而mobile為VARCHAR);-復(fù)合索引未遵循最左匹配原則(如索引(a,b,c),查詢(xún)WHEREb=1);-條件使用OR連接且部分條件無(wú)索引(如WHEREid_card=‘xxx’ORname=‘張三’)。針對(duì)“根據(jù)身份證號(hào)查詢(xún)客戶(hù)姓名”的索引設(shè)計(jì):-身份證號(hào)id_card是唯一標(biāo)識(shí),且查詢(xún)?yōu)榈戎挡樵?xún)(WHEREid_card=‘xxx’),應(yīng)創(chuàng)建單列索引:CREATEINDEXidx_id_cardONcustomer(id_card);-若查詢(xún)需返回name,可創(chuàng)建覆蓋索引:CREATEINDEXidx_id_card_nameONcustomer(id_card,name),避免回表查詢(xún),提升性能。三、系統(tǒng)設(shè)計(jì)題1.設(shè)計(jì)一個(gè)銀行用戶(hù)交易通知系統(tǒng),要求支持短信、APP推送、郵件三種通知方式,需滿(mǎn)足:(1)高并發(fā)(日處理1億條通知);(2)高可靠性(通知失敗需重試,最終送達(dá)率≥99.99%);(3)可擴(kuò)展性(未來(lái)可能增加微信模板消息等新渠道)。請(qǐng)畫(huà)出系統(tǒng)架構(gòu)圖(文字描述即可),并說(shuō)明關(guān)鍵模塊的設(shè)計(jì)思路。答案:系統(tǒng)架構(gòu)分為五層:-接入層:接收交易系統(tǒng)的通知請(qǐng)求(如Kafka消息),包含交易ID、用戶(hù)ID、通知內(nèi)容、渠道優(yōu)先級(jí)(如短信>APP推送>郵件)。-調(diào)度層:-消息隊(duì)列(如RocketMQ):緩沖高并發(fā)請(qǐng)求,削峰填谷;-任務(wù)分發(fā)器:根據(jù)用戶(hù)配置的渠道優(yōu)先級(jí),將任務(wù)路由至對(duì)應(yīng)渠道處理隊(duì)列(如優(yōu)先短信隊(duì)列)。-渠道處理層:-短信網(wǎng)關(guān):調(diào)用運(yùn)營(yíng)商API(如阿里云短信),需處理限流(如每分鐘1000次調(diào)用);-APP推送服務(wù):調(diào)用廠商推送SDK(如華為、小米),支持批量推送;-郵件服務(wù):通過(guò)SMTP協(xié)議發(fā)送,使用連接池復(fù)用TCP連接。-失敗處理層:-重試隊(duì)列:記錄失敗任務(wù)(如短信發(fā)送超時(shí)),按指數(shù)退避策略重試(1s、3s、9s...最多5次);-死信隊(duì)列:重試失敗的任務(wù)進(jìn)入死信隊(duì)列,人工審核(如用戶(hù)手機(jī)號(hào)注銷(xiāo))。-監(jiān)控層:-指標(biāo)采集:統(tǒng)計(jì)各渠道成功率、延遲、QPS;-告警系統(tǒng):當(dāng)某渠道成功率<95%時(shí)觸發(fā)告警(如短信網(wǎng)關(guān)故障)。關(guān)鍵設(shè)計(jì)思路:-異步解耦:交易系統(tǒng)通過(guò)消息隊(duì)列發(fā)送請(qǐng)求,避免同步調(diào)用阻塞核心交易;-渠道隔離:各渠道獨(dú)立線程池處理,防止某渠道故障(如郵件服務(wù)器宕機(jī))影響其他渠道;-冪等性設(shè)計(jì):使用交易ID+渠道作為唯一標(biāo)識(shí),避免重復(fù)發(fā)送(如消息重復(fù)消費(fèi));-動(dòng)態(tài)擴(kuò)展:通過(guò)策略模式定義渠道接口(如INotificationChannel),新增微信渠道時(shí)僅需實(shí)現(xiàn)接口并注冊(cè)至調(diào)度層。2.銀行核心交易系統(tǒng)需支持跨行轉(zhuǎn)賬功能,涉及本行賬戶(hù)扣減、央行支付系統(tǒng)調(diào)用、他行賬戶(hù)增加三個(gè)步驟。請(qǐng)?jiān)O(shè)計(jì)分布式事務(wù)方案,確保最終一致性,并說(shuō)明如何處理“央行支付系統(tǒng)超時(shí)”的異常場(chǎng)景。答案:采用TCC(Try-Confirm-Cancel)模式結(jié)合本地事務(wù)補(bǔ)償:步驟設(shè)計(jì):1.Try階段(資源預(yù)留):-本行賬戶(hù):凍結(jié)轉(zhuǎn)賬金額(UPDATEaccountSETbalance=balance-amount,frozen=amountWHEREuser_id=A);-記錄事務(wù)日志(狀態(tài)為“處理中”,包含交易ID、金額、央行接口參數(shù))。2.Confirm階段(最終提交):-調(diào)用央行支付系統(tǒng)(如大小額支付系統(tǒng)),同步獲取結(jié)果;-若成功:本行賬戶(hù)扣減凍結(jié)金額(UPDATEaccountSETfrozen=0WHEREuser_id=A),他行賬戶(hù)增加金額(通過(guò)央行清算系統(tǒng)異步記賬);-事務(wù)日志狀態(tài)更新為“成功”。3.Cancel階段(資源回滾):-若央行調(diào)用失敗或超時(shí):解凍本行賬戶(hù)凍結(jié)金額(UPDATEaccountSETfrozen=0WHEREuser_id=A);-事務(wù)日志狀態(tài)更新為“失敗”,通知用戶(hù)轉(zhuǎn)賬失敗。異常處理(央行支付系統(tǒng)超時(shí)):-超時(shí)后,啟動(dòng)補(bǔ)償流程:查詢(xún)央行系統(tǒng)交易狀態(tài)(通過(guò)查詢(xún)接口);-若央行已處理成功:執(zhí)行Confirm(避免重復(fù)扣減);-若央行未處理:執(zhí)行Cancel(解凍資金);-若查詢(xún)接口也超時(shí)(極端情況),通過(guò)定時(shí)任務(wù)(每10分鐘)重試查詢(xún),直至明確狀態(tài)(最終一致性)。四、網(wǎng)絡(luò)與安全題1.簡(jiǎn)述HTTPS的通信流程,并說(shuō)明銀行手機(jī)銀行APP為何強(qiáng)制使用HTTPS而非HTTP。答案:HTTPS流程:-客戶(hù)端發(fā)送支持的加密算法(如TLS1.3)和隨機(jī)數(shù)C;-服務(wù)端返回證書(shū)(含公鑰)和隨機(jī)數(shù)S;-客戶(hù)端驗(yàn)證證書(shū)(通過(guò)CA機(jī)構(gòu)),提供預(yù)主密鑰P(用公鑰加密后發(fā)送);-雙方用C+S+P提供會(huì)話密鑰,后續(xù)通信通過(guò)對(duì)稱(chēng)加密(如AES)傳輸。銀行強(qiáng)制使用HTTPS的原因:-機(jī)密性:HTTP明文傳輸,用戶(hù)賬號(hào)、密碼、交易金額可能被中間人竊??;-完整性:HTTPS通過(guò)HMAC驗(yàn)證數(shù)據(jù)未被篡改(如防止轉(zhuǎn)賬金額被修改為惡意值);-身份認(rèn)證:證書(shū)確??蛻?hù)端訪問(wèn)的是真實(shí)銀行服務(wù)器(防范釣魚(yú)網(wǎng)站)。2.解釋SQL注入攻擊的原理,并說(shuō)明銀行交易系統(tǒng)中如何防御。答案:原理:攻擊者通過(guò)在輸入?yún)?shù)中插入SQL代碼(如'OR'1'='1),篡改原SQL邏輯,導(dǎo)致數(shù)據(jù)庫(kù)泄露或破壞(如查詢(xún)所有用戶(hù)信息、刪除表)。防御措施:-使用預(yù)編譯語(yǔ)句(PreparedStatement):參數(shù)化查詢(xún),將輸入與SQL語(yǔ)句隔離(如Java的PreparedStatement.setXXX());-輸入校驗(yàn):對(duì)交易金額、用戶(hù)ID等字段進(jìn)行格式校驗(yàn)(如金額必須為數(shù)字,長(zhǎng)度不超過(guò)18位);-最小權(quán)限原則:數(shù)據(jù)庫(kù)連接使用僅具備查詢(xún)/更新權(quán)限的賬號(hào),禁止執(zhí)行DROP、DELETE等危險(xiǎn)操作;-Web應(yīng)用防火墻(WAF):過(guò)濾包含“UNION”“EXEC”等關(guān)鍵字的惡意請(qǐng)求。3.對(duì)稱(chēng)加密與非對(duì)稱(chēng)加密的核心區(qū)別是什么?銀行U盾(硬件密鑰)通常采用哪種加密方式?為什么?答案:區(qū)別:-對(duì)稱(chēng)加密:加密和解密使用同一密鑰(如AES),速度快但密鑰分發(fā)困難;-非對(duì)稱(chēng)加密:公鑰加密、私鑰解密(如RSA),解決密鑰分發(fā)問(wèn)題但速度慢。U盾采用非對(duì)稱(chēng)加密為主、對(duì)稱(chēng)加密為輔的混合模式:-公鑰證書(shū)存儲(chǔ)在U盾中,私鑰永不導(dǎo)出(防竊?。?轉(zhuǎn)賬時(shí),客戶(hù)端用公鑰加密交易數(shù)據(jù),U盾用私鑰解密并簽名;-會(huì)話密鑰用AES加密(速度快),密鑰協(xié)商用RSA(安全分發(fā))。選擇原因:私鑰硬件保護(hù)(防暴力破解),公鑰可安全分發(fā)(無(wú)需傳輸私鑰),滿(mǎn)足銀行對(duì)“不可抵賴(lài)性”的要求(交易簽名僅能由私鑰持有者提供)。4.簡(jiǎn)述OAuth2.0的四種授權(quán)模式,并說(shuō)明銀行開(kāi)放平臺(tái)(如允許第三方APP查詢(xún)用戶(hù)賬戶(hù)余額)應(yīng)選擇哪種模式,為什么?答案:四種模式:-授權(quán)碼模式(AuthorizationCode):用戶(hù)跳轉(zhuǎn)至銀行登錄頁(yè),授權(quán)后返回授權(quán)碼,第三方用授權(quán)碼換令牌;-簡(jiǎn)化模式(Implicit):直接返回令牌(適用于單頁(yè)應(yīng)用,安全性低);-密碼模式(ResourceOwnerPasswordCredentials):用戶(hù)直接提供賬號(hào)密碼給第三方(風(fēng)險(xiǎn)高);-客戶(hù)端模式(ClientCredentials):第三方用自身憑證獲取令牌(無(wú)用戶(hù)參與)。銀行開(kāi)放平臺(tái)應(yīng)選擇授權(quán)碼模式:-用戶(hù)明確授權(quán)(需在銀行頁(yè)面輸入密碼),符合“最小權(quán)限原則”(僅授權(quán)查詢(xún)余額,而非轉(zhuǎn)賬);-授權(quán)碼僅一次性使用,且通過(guò)HTTPS傳輸,降低令牌泄露風(fēng)險(xiǎn);-支持刷新令牌(RefreshToken),避免頻繁重復(fù)授權(quán),提升用戶(hù)體驗(yàn)。5.零信任架構(gòu)(ZeroTrust)的核心原則是什么?銀行數(shù)據(jù)中心如何應(yīng)用零信任提升安全性?答案:核心原則:“永不信任,始終驗(yàn)證”,默認(rèn)不信任任何內(nèi)外部訪問(wèn)者,需基于身份、設(shè)備狀態(tài)、網(wǎng)絡(luò)環(huán)境等多因素動(dòng)態(tài)驗(yàn)證權(quán)限。銀行數(shù)據(jù)中心應(yīng)用:-身份認(rèn)證:?jiǎn)T工訪問(wèn)核心系統(tǒng)需雙重認(rèn)證(如AD賬號(hào)+動(dòng)態(tài)令牌);-設(shè)備安全檢查:終端需安裝殺毒軟件、補(bǔ)丁更新至最新版本(否則阻斷訪問(wèn));-最小權(quán)限訪問(wèn):開(kāi)發(fā)人員僅能訪問(wèn)測(cè)試環(huán)境數(shù)據(jù)庫(kù),生產(chǎn)庫(kù)訪問(wèn)需審批并記錄審計(jì)日志;-微隔離:將數(shù)據(jù)庫(kù)、交易系統(tǒng)、日志服務(wù)器劃分為不同安全區(qū),區(qū)之間流量通過(guò)軟件定義邊界(SDP)驗(yàn)證(如僅允許交易系統(tǒng)訪問(wèn)數(shù)據(jù)庫(kù)3306端口);-持續(xù)監(jiān)控:實(shí)時(shí)分析用戶(hù)行為(如夜間異常登錄),觸發(fā)臨時(shí)權(quán)限回收或告警。五、編程題(Java/Python任選)1.實(shí)現(xiàn)一個(gè)函數(shù),判斷一個(gè)字符串是否為合法的銀行賬號(hào)。規(guī)則:-長(zhǎng)度為16-19位數(shù)字;-符合Luhn校驗(yàn)算法(模10校驗(yàn))。(Luhn算法:從右往左,偶數(shù)位(從1開(kāi)始計(jì)數(shù))數(shù)字乘以2,若結(jié)果>9則減去9;所有數(shù)字求和,總和能被10整除則有效。)答案(Python):```pythondefis_valid_bank_account(account:str)->bool:校驗(yàn)長(zhǎng)度iflen(account)notin(16,17,18,19):returnFalseifnotaccount.isdigit():returnFalseLuhn校驗(yàn)total=0從右往左,索引0是最后一位(奇數(shù)位,從1開(kāi)始計(jì)數(shù)時(shí)為偶數(shù)位?需注意計(jì)數(shù)方向)正確計(jì)數(shù):從右數(shù)第1位是位置1(奇數(shù)位,不乘2),第2位是位置2(偶數(shù)位,乘2)reversed_digits=list(map(int,reversed(account)))foriinrange(len(reversed_digits)):digit=reversed_digits[i]if(i+1)%2==0:偶數(shù)位置(從右數(shù)第2、4...位)doubled=digit2total+=doubledifdoubled<10elsedoubled-9else:奇數(shù)位置total+=digitreturntotal%10==0```2.給定一個(gè)單鏈表(如:1->2->3->4->5),實(shí)現(xiàn)一個(gè)函數(shù)反轉(zhuǎn)從位置m到位置n的部分(如m=2,n=4,結(jié)果為1->4->3->2->5)。要求時(shí)間復(fù)雜度O(n),空間復(fù)雜度O(1)。(Java實(shí)現(xiàn))答案(Java):```javaclassListNode{intval;ListNodenext;ListNode(intval){this.val=val;}}publicclassSolution{publicListNodereverseBetween(ListNodehead,intm,intn){if(head==null||m>=n)returnhead;ListNodedummy=newListNode(0);//虛擬頭節(jié)點(diǎn),處理m=1的情況dummy.next=head;ListNodepre=dummy;//找到m-1的位置for(inti=1;i<m;i++){pre=pre.next;}ListNodestart=pre.next;//m位置節(jié)點(diǎn)ListNodethen=start.next;//m+1位置節(jié)點(diǎn)//反轉(zhuǎn)m到n

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論