• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    一種MD5雙重校驗(yàn)?zāi)P脱芯考皯?yīng)用

    2019-09-12 10:41:42張明禮袁佳峰
    關(guān)鍵詞:一致性

    張明禮 袁佳峰

    摘 要:本文提出了基于MD5算法的雙重校驗(yàn)?zāi)P?,?shí)現(xiàn)了跨平臺(tái)的版本一致性校驗(yàn),可完成任意形式文件集合的一致性比對(duì)。介紹了該模型在投產(chǎn)版本交付、測(cè)試過程版本管理和測(cè)試案例集內(nèi)容比對(duì)等領(lǐng)域的實(shí)際應(yīng)用情況。

    關(guān)鍵詞:版本文件;MD5;一致性;散列

    文章編號(hào):2095-2163(2019)04-0234-03 中圖分類號(hào):TP311 文獻(xiàn)標(biāo)志碼:A

    0 引 言

    隨著金融科技的快速發(fā)展,金融產(chǎn)品推陳出新日益加快,軟件版本發(fā)布頻率越來越高。如何加強(qiáng)開發(fā)、測(cè)試、運(yùn)維團(tuán)隊(duì)之間的協(xié)作,有效管控版本文件在整個(gè)軟件生命周期中的交付風(fēng)險(xiǎn)[1],如何防范客觀上的差錯(cuò)風(fēng)險(xiǎn)和主觀上的篡改風(fēng)險(xiǎn),是軟件行業(yè)特別是金融行業(yè)需關(guān)注的問題。

    MD5[2]是一種散列(Hash)技術(shù),廣泛用于加密、解密、數(shù)據(jù)簽名和數(shù)據(jù)完整性校驗(yàn)等方面。本文主要關(guān)注數(shù)據(jù)完整性校驗(yàn)問題,對(duì)于任何一個(gè)文件,無論代碼文件、可執(zhí)行程序、或者其它類型的文件,不管文件字節(jié)數(shù)的多少,都可以計(jì)算出一個(gè)MD5值,可以通過對(duì)比同一文件的 MD5 值來判斷文件是否被篡改。目前通行的做法是使用MD5算法解決單一文件的比對(duì),本文基于標(biāo)準(zhǔn)MD5算法,提出了一種MD5雙重校驗(yàn)?zāi)P停梢蕴幚砣我庑问轿募系囊恢滦员葘?duì),在不改變交付物目錄結(jié)構(gòu)的情況下,有效防范投產(chǎn)版本交付、測(cè)試版本過程管控[3]中的操作風(fēng)險(xiǎn)。

    1 MD5校驗(yàn)?zāi)P徒榻B

    1.1 MD5雙重校驗(yàn)?zāi)P驮?/p>

    模型的技術(shù)原理為,使用標(biāo)準(zhǔn)MD5散列算法獲得每個(gè)文件的MD值(第一次),遍歷并記錄所有文件的文件路徑、文件名和MD5值,形成中間過程文件(文件不落地的情況下為字節(jié)流),針對(duì)該文件(字節(jié)流)生成MD5值(第二次),如圖1所示。

    1.2 模型設(shè)計(jì)目標(biāo)

    (1)對(duì)于任意形式(單一文件、復(fù)雜層級(jí)文件夾)的版本文件,最終生成唯一的MD5值。

    (2)兼容主流操作系統(tǒng),在不改變?nèi)魏蜗到y(tǒng)設(shè)置情況下,實(shí)現(xiàn)跨平臺(tái)的一致性校驗(yàn)(UNIX和WINDOWS),即對(duì)于同一文件集合,在WINDOWS和UNIX平臺(tái)下生成的最終MD5值應(yīng)相同。

    1.3 算法生成步驟

    (1)遞歸方式遍歷所有層級(jí)文件,以版本文件及其路徑構(gòu)建版本信息二叉排序樹,并生成每個(gè)文件的MD5值。

    (2)遍歷二叉樹,生成包含文件名稱、文件路徑、MD5值信息的中間過程文件(字節(jié)流)。

    (3)對(duì)中間過程文件(字節(jié)流)再次生成MD5值,該MD5值可記錄至平臺(tái)或通過郵件告知相關(guān)方,并作為一致性比對(duì)依據(jù)。

    2 實(shí)例驗(yàn)證

    以個(gè)人網(wǎng)銀系統(tǒng)日常變更的版本文件作為實(shí)例,說明該校驗(yàn)?zāi)P偷膽?yīng)用情況。

    (1)在個(gè)人網(wǎng)銀系統(tǒng)20190327版本包中,包含一個(gè)20190327文件夾,該文件夾內(nèi)有menusNew.xml等4個(gè)文件。

    (2)中間過程文件,每一行對(duì)應(yīng)一個(gè)文件葉子節(jié)點(diǎn)的MD5值,由文件路徑,文件名組成,如圖2所示。該文件可以根據(jù)需要寫到本地備查,也可以不落地直接生成MD5。針對(duì)此中間過程文件,2次生成MD5值32F1BE00B64BAC55D73EF02DB0E494C0,該MD5值可以通過平臺(tái)或郵件,通知不同的操作人員,作為版本文件一致性的比對(duì)依據(jù)。

    (3)Windows客戶端工具??蛻舳斯ぞ咧С諻indows下的文件比對(duì),文件路徑指版本文件在本地的存放路徑。平臺(tái)(遠(yuǎn)程)MD5值是基于中間文件生成的最終MD5值。本地MD5值是根據(jù)本地文件生成的MD5值。在D:\\MD5目錄下,存放了網(wǎng)銀20190327版本包,Windows客戶端工具如圖3所示。

    (4)UNIX平臺(tái)客戶端比對(duì)工具。 UNIX類平臺(tái)雖然具有多樣性,但一般都預(yù)裝有perl解釋器,并且無需安裝運(yùn)行環(huán)境,普通用戶可以直接執(zhí)行。經(jīng)過調(diào)研比較,本研究選擇perl語言開發(fā)比對(duì)工具,兼容AIX、 HP-UX、 LINUX等UNIX類工作平臺(tái),要求perl環(huán)境為5.6及以上版本。工具支持文件和目錄的校驗(yàn),支持相對(duì)路徑和絕對(duì)路徑,通過如下格式調(diào)用perl腳本進(jìn)行MD5一致性校驗(yàn):

    perl md5check.pl –d directory(filename) -m md5Value。

    Perl環(huán)境版本號(hào)檢查方法如下:

    [host1013_cbs]/cbs/md5 >perl -v

    This is perl,v5.10.1 (*) built for aix-thread-multi

    在/cbs/md5/nb目錄下,存放了網(wǎng)銀20190327版本包,下面給出了3種情況的比對(duì)示例:

    ①輸入正確的MD5值,提示MD5比對(duì)通過:

    [host1013_cbs]/cbs/md5 >perl md5check.pl-d nb -m 32F1BE00B64BAC55D73EF02DB0E494C0

    MD5 Verified OK

    ②輸入錯(cuò)誤的MD5值,提示MD5比對(duì)不通過:

    [host1013_cbs]/cbs/md5 >perl md5check.pl-d nb -m 32F1BE00B64BAC55D73EF02DB0E494C1

    MD5 Verified FAILURE, please recheck the md5 value you input!!

    ③輸入正確的MD5值,但修改了版本文件menusNew.xml(例如在文件最后增加一個(gè)字符),提示MD5比對(duì)不通過:

    [host1013_cbs]/cbs/md5 >perl md5check.pl-d nb -m 32F1BE00B64BAC55D73EF02DB0E494C0

    MD5 Verified FAILURE, please recheck the md5 value you input?。?/p>

    (5)性能表現(xiàn)。對(duì)于100 M以下的版本文件,在1 s內(nèi)即可獲得文件集的MD5結(jié)果;800 M以上版本文件,其處理時(shí)間在10 s內(nèi),屬于可接受的等待時(shí)間。但測(cè)試發(fā)現(xiàn),較大文件的CPU消耗略高,建議不要在生產(chǎn)環(huán)境的業(yè)務(wù)高峰期使用該工具。

    為了得到MD5客戶端工具的使用效率和性能開銷情況,按照版本文件大小區(qū)分,分別選取大中小3種類型的版本文件,進(jìn)行執(zhí)行時(shí)間、系統(tǒng)資源消耗的監(jiān)控,測(cè)試結(jié)果見表1。

    MD5客戶端工具的運(yùn)行時(shí)間和版本大小成正比,CPU資源的消耗主要和版本文件的大小、CPU主頻與數(shù)量、存儲(chǔ)設(shè)備性能等有關(guān)。

    3 應(yīng)用場(chǎng)景

    該模型在投產(chǎn)版本交付、測(cè)試過程版本管理和測(cè)試案例集內(nèi)容比對(duì)等領(lǐng)域得到了實(shí)際應(yīng)用,具體應(yīng)用情況如下:

    3.1 投產(chǎn)版本交付管理領(lǐng)域

    投產(chǎn)版本是指最終發(fā)布在生產(chǎn)環(huán)境中的一組特定軟件包及其各類附屬文件的集合,一般包括目標(biāo)代碼、腳本、配置文件和安裝說明文檔等。投產(chǎn)版本交付的主要環(huán)節(jié)為:版本文件在項(xiàng)目開發(fā)方制作完成后,經(jīng)由測(cè)試方測(cè)試通過,最終交付給運(yùn)維方在生產(chǎn)環(huán)境變更實(shí)施。對(duì)于任何一個(gè)版本文件集,開發(fā)方在制作完成后提交至版本平臺(tái),并檢驗(yàn)本地和平臺(tái)MD5值是否保持一致;測(cè)試方在MD5一致性校驗(yàn)通過后開展測(cè)試驗(yàn)證工作;實(shí)施方在MD5一致性校驗(yàn)通過后方可進(jìn)行生產(chǎn)環(huán)境發(fā)布??梢钥吹?,模型的應(yīng)用貫穿了投產(chǎn)版本從開發(fā)、測(cè)試到投產(chǎn)的全過程。通過提供跨平臺(tái)MD5一致性校驗(yàn),滿足了應(yīng)用系統(tǒng)平臺(tái)多樣性需求,實(shí)現(xiàn)了浦發(fā)銀行應(yīng)用系統(tǒng)投產(chǎn)版本交付的全覆蓋,月均交付投產(chǎn)版本超過300個(gè)。該模型的成功應(yīng)用,替代了傳統(tǒng)的基于文件名、字節(jié)數(shù)和時(shí)間戳等內(nèi)容為主的手工比對(duì),實(shí)現(xiàn)了針對(duì)版本內(nèi)容的一致性校驗(yàn)。不僅有效防范了客觀上的差錯(cuò)風(fēng)險(xiǎn)(例如網(wǎng)絡(luò)傳輸過程中的部分文件意外丟失)和主觀上的篡改風(fēng)險(xiǎn)(例如上傳未經(jīng)授權(quán)的惡意代碼),同時(shí)提高了版本比對(duì)效率,為應(yīng)用系統(tǒng)的安全投產(chǎn)與穩(wěn)定運(yùn)行提供了重要保障。

    3.2 測(cè)試版本過程管控領(lǐng)域

    生產(chǎn)環(huán)境的變更往往有嚴(yán)格的變更管理流程來管控,測(cè)試環(huán)境一般由項(xiàng)目組自行管理,應(yīng)用版本更新相對(duì)來說具有靈活性和隨意性。假定在某一輪測(cè)試過程中發(fā)生了版本更新,就會(huì)引發(fā)測(cè)試結(jié)果與測(cè)試版本之間無法有效對(duì)應(yīng),進(jìn)而影響測(cè)試結(jié)果的可信度。使用了基于此校驗(yàn)?zāi)P偷陌姹咀兏鼨z測(cè)工具,可隨時(shí)監(jiān)控被測(cè)環(huán)境的應(yīng)用版本更新情況。當(dāng)測(cè)試版本變更時(shí),項(xiàng)目開發(fā)人員和測(cè)試人員都會(huì)收到版本變化的郵件通知,及時(shí)掌握每次版本更新的情況,掌控協(xié)調(diào)版本更新節(jié)奏,減少了對(duì)功能、性能差異的探究以及頻繁更新導(dǎo)致的重復(fù)測(cè)試。測(cè)試版本從首次提交到測(cè)試結(jié)果發(fā)布,整個(gè)測(cè)試過程納入管控,有力推進(jìn)了測(cè)試版本交付和變更過程規(guī)范化。

    3.3 測(cè)試案例自動(dòng)化生成項(xiàng)目

    基于業(yè)務(wù)流程圖生成的測(cè)試案例集中,測(cè)試案例數(shù)量往往達(dá)到數(shù)百個(gè)。如果業(yè)務(wù)流程圖因業(yè)務(wù)變化需要更新,更新前后生成的有差別的案例可能只有幾個(gè),通過人工識(shí)別這些差別,效率非常低。通過基于該模型的中間過程文件比對(duì),可以快速的定位哪些案例發(fā)生了變化,在系統(tǒng)層面予以標(biāo)記,節(jié)省了大量的人工成本。

    4 結(jié)束語

    本文提出了一種改進(jìn)的MD5校驗(yàn)?zāi)P停撃P统晒?yīng)用于投產(chǎn)版本文件交付、測(cè)試過程版本管控、測(cè)試案例集內(nèi)容比對(duì)等領(lǐng)域。模型的提出及其應(yīng)用,提升了投產(chǎn)版本交付的效率和安全性,實(shí)現(xiàn)了測(cè)試版本的過程管控,大幅提升了測(cè)試案例集比對(duì)的效率?;谠撃P偷难芯亢蛻?yīng)用,對(duì)于軟件行業(yè)和金融行業(yè)具有一定的參考價(jià)值。

    參考文獻(xiàn)

    [1]董昕,郭勇,王杰. 基于DevOps能力模型的持續(xù)集成方法[J]. 計(jì)算機(jī)工程與設(shè)計(jì),2018,39(7):1930-1937.

    [2]崔永輝,賈連興,張江. MD5算法研究[C]//第17屆中國(guó)系統(tǒng)仿真技術(shù)及其應(yīng)用學(xué)術(shù)年會(huì)論文集(17th CCSSTA 2016).安徽:中國(guó)自動(dòng)化學(xué)會(huì)系統(tǒng)仿真專業(yè)委員會(huì),2016,17:216-218.

    [3]馮文亮,陳俊,成潔. 測(cè)試版本管理平臺(tái)設(shè)計(jì)與應(yīng)用[J]. 中國(guó)金融電腦, 2018(5):57-62.

    猜你喜歡
    一致性
    注重整體設(shè)計(jì) 凸顯數(shù)與運(yùn)算的一致性
    遼寧教育(2022年19期)2022-11-18 07:20:42
    關(guān)注減污降碳協(xié)同的一致性和整體性
    公民與法治(2022年5期)2022-07-29 00:47:28
    商用車CCC認(rèn)證一致性控制計(jì)劃應(yīng)用
    注重教、學(xué)、評(píng)一致性 提高一輪復(fù)習(xí)效率
    對(duì)歷史課堂教、學(xué)、評(píng)一體化(一致性)的幾點(diǎn)探討
    IOl-master 700和Pentacam測(cè)量Kappa角一致性分析
    基于CFD仿真分析的各缸渦流比一致性研究
    ONVIF的全新主張:一致性及最訪問控制的Profile A
    方形截面Rogowski線圈的一致性分析
    基于事件觸發(fā)的多智能體輸入飽和一致性控制
    五台县| 北流市| 河源市| 台南市| 收藏| 五大连池市| 临颍县| 福泉市| 巫溪县| 青川县| 霍山县| 类乌齐县| 藁城市| 司法| 彝良县| 平南县| 慈溪市| 无为县| 鄂托克前旗| 通化县| 石景山区| 富蕴县| 伊通| 白玉县| 获嘉县| 朔州市| 宣威市| 甘孜县| 广昌县| 木里| 建湖县| 芒康县| 桂阳县| 屯留县| 百色市| 宜兰县| 江永县| 华容县| 宁陕县| 集安市| 建平县|