• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于Java的比賽工位抽簽加密系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)*

      2022-07-29 14:12:30董寶慶李立亞閭立新
      計(jì)算機(jī)時(shí)代 2022年7期
      關(guān)鍵詞:順序號(hào)解密工位

      董寶慶,王 振,李立亞,閭立新,吳 麗

      (無錫科技職業(yè)學(xué)院,江蘇 無錫 214028)

      0 引言

      我國(guó)職業(yè)院校技能大賽賽項(xiàng)規(guī)程中,參賽隊(duì)伍比賽工位的分配有一套抽簽機(jī)制。即先進(jìn)行一次加密,選手按抽簽順序號(hào)依次抽取參賽編號(hào)。然后二次加密,選手憑參賽編號(hào)抽取比賽工位號(hào),按此工位號(hào)就位參加比賽。裁判及工作人員無法得知工位上是哪個(gè)隊(duì)伍,參賽過程中的隊(duì)伍保密,能保障比賽公平。

      當(dāng)前賽事仍然使用傳統(tǒng)的紙質(zhì)加密方式抽簽。賽后人工核對(duì)解密,獲得比賽工位和參賽隊(duì)伍的對(duì)應(yīng)關(guān)系。紙質(zhì)加密操作麻煩,需要制作抽簽工具。如果設(shè)計(jì)一款操作簡(jiǎn)便,具有信息加密功能的比賽工位抽簽系統(tǒng),可以提高工作的效率。

      針對(duì)以上情況,我們利用Java 技術(shù),并結(jié)合加密算法,開發(fā)了一款抽簽加密系統(tǒng),加密過程中所有選手的信息都是以密文保存,只能在規(guī)定的電腦上進(jìn)行加/解密,極大地保護(hù)了選手的隱私。

      1 抽簽加密系統(tǒng)設(shè)計(jì)

      本軟件由三個(gè)獨(dú)立的子系統(tǒng)構(gòu)成,分別為一次加密子系統(tǒng),二次加密子系統(tǒng)和解密子系統(tǒng)。一次加密子系統(tǒng)的功能是為選手抽取參賽編號(hào)。憑參賽編號(hào),使用二次加密子系統(tǒng)進(jìn)行二次抽簽,抽取比賽工位號(hào)。比賽完成后,使用解密軟件對(duì)加密內(nèi)容逐級(jí)地解密。系統(tǒng)總體功能設(shè)計(jì)如圖1所示。

      圖1 系統(tǒng)結(jié)構(gòu)圖

      1.1 子系統(tǒng)功能流程設(shè)計(jì)

      加密系統(tǒng)各子系統(tǒng)間功能流轉(zhuǎn)如圖2所示。抽簽順序號(hào)在賽前說明會(huì)時(shí)抽取確定好,本系統(tǒng)不涉及該順序號(hào)的抽簽分配。

      圖2 子系統(tǒng)功能流程圖

      一次加密子系統(tǒng)模塊工作流程分如下幾步:首先初始化一次加密表,用系統(tǒng)當(dāng)前時(shí)間和參賽隊(duì)數(shù)量,生成隨機(jī)參賽編號(hào),加密后保存在“一次加密表”中。系統(tǒng)根據(jù)賽隊(duì)抽簽順序號(hào)隨機(jī)抽取未經(jīng)分配的參賽編號(hào),之后將順序號(hào)用組密鑰進(jìn)行加密,將密文寫入與參賽編號(hào)行對(duì)應(yīng)的單元格中。將參賽編號(hào)密文生成二維碼,調(diào)用打印機(jī)打印在熱敏標(biāo)簽上,交給參賽選手二次加密用。

      二次加密子系統(tǒng)首先獲取參賽隊(duì)數(shù)量,根據(jù)賽隊(duì)數(shù)量初始化二次加密表,工位號(hào)用組密鑰加密,寫入“二次加密表”中。工作人員用掃碼槍掃描參賽編號(hào)二維碼,獲取二維碼中的數(shù)據(jù)。系統(tǒng)從未分配的工位號(hào)中隨機(jī)抽取一個(gè)工位,寫入到該工位行所在的單元格,并打印交給選手,實(shí)現(xiàn)工位的隨機(jī)分配功能。

      解密模塊使用參賽隊(duì)伍抽簽順序表和經(jīng)過一、二次加密子系統(tǒng)生成的“一次加密表”、“二次加密表”,根據(jù)各表中數(shù)據(jù)的對(duì)應(yīng)關(guān)系,找出工位號(hào)和參賽隊(duì)伍的對(duì)應(yīng)關(guān)系,生成解密表,完成工位號(hào)的解密操作。

      1.2 使用的表結(jié)構(gòu)

      本系統(tǒng)的加解密過程共會(huì)用到四張表格,分別為參賽隊(duì)伍抽簽順序表、一次加密表、二次加密表和解密表。

      如圖3,參賽隊(duì)伍抽簽順序表由表頭和賽隊(duì)信息組成。主要包括賽隊(duì)ID、賽隊(duì)信息、抽簽順序號(hào)三類信息。賽隊(duì)信息由裁判在加密之前導(dǎo)入。根據(jù)本表,建立抽簽順序號(hào)和隊(duì)伍的對(duì)應(yīng)關(guān)系。

      圖3 參賽隊(duì)伍抽簽順序表

      如圖4,導(dǎo)入?yún)①愱?duì)伍抽簽順序表后,系統(tǒng)會(huì)從此Excel 表格sheet1 中讀取表頭生成一次加密表表頭。系統(tǒng)根據(jù)工作人員輸入的抽簽順序號(hào),分配隨機(jī)編號(hào)。一次加密表由表頭、抽簽順序號(hào)和參賽編號(hào)組成。參賽編號(hào)同時(shí)生成。輸入抽簽順序號(hào)后,系統(tǒng)會(huì)將此抽簽順序號(hào)隨機(jī)寫入抽簽順序號(hào)單元格所在列的某一行。本圖中有密文標(biāo)注字樣的數(shù)據(jù)以密文存于表格中,無密文標(biāo)注字樣的數(shù)據(jù)全部以明文保存,下文表格同理。一次加密表將參賽編號(hào)和抽簽順序號(hào)建立起聯(lián)系。

      圖4 一次加密(關(guān)鍵信息)表

      如圖5,進(jìn)行第二次加密時(shí),系統(tǒng)會(huì)要求輸入?yún)①惥幪?hào),根據(jù)參賽編號(hào)分配賽位號(hào)。二次加密表中包含了參賽編號(hào)、賽位號(hào)。表中參賽編號(hào)與賽位號(hào)單元格一一對(duì)應(yīng),賽位號(hào)隨表頭一起生成,參賽編號(hào)被隨機(jī)寫入到參賽編號(hào)單元格所在列的某一行。根據(jù)此表信息,將賽位號(hào)和參賽編號(hào)建立起對(duì)應(yīng)關(guān)系。

      圖5 二次加密(關(guān)鍵信息)表

      根據(jù)前三張表所建立的對(duì)應(yīng)關(guān)系,進(jìn)行溯源,在解密表中由賽位號(hào)找到參賽編號(hào),由參賽編號(hào)找到抽簽順序,由抽簽順序找到參賽隊(duì)伍信息,最終獲取解密表所需的數(shù)據(jù)。解密表除了表頭以外還包括賽位號(hào)、參賽編號(hào)、參賽隊(duì)伍、加密裁判簽名和仲裁組裁判簽名以及日期這些信息,解密表關(guān)鍵信息如圖6所示。解密表中的核心數(shù)據(jù)為賽位號(hào)、參賽編號(hào)及其參賽隊(duì)伍,理清了從參賽隊(duì)伍抽簽順序表,到一次加密表和二次加密表的線索,最終形成了解密表。

      圖6 解密(關(guān)鍵信息)表

      2 軟件安全設(shè)計(jì)

      2.1 加密算法選用

      MD5 散列算法用于生成唯一的“指紋”信息,本系統(tǒng)根據(jù)登錄時(shí)的三個(gè)MAC 地址,進(jìn)行拼接等操作后,對(duì)得到的字符串進(jìn)行MD5 散列處理。截取經(jīng)MD5散列后的某一段字符串作為種子,進(jìn)行DES 加密,得到組密鑰。

      DES 算法為密碼體制中的對(duì)稱加密體制,本系統(tǒng)使用64 位長(zhǎng)度的密鑰進(jìn)行DES 加密運(yùn)算。DES 加密解密為同一套密鑰,初始密鑰長(zhǎng)度為8字節(jié)。本系統(tǒng)根據(jù)初始密鑰長(zhǎng)度,以“多刪少補(bǔ)”原則,選擇性刪除和補(bǔ)位操作,構(gòu)建64位密鑰。鑒于本系統(tǒng)對(duì)加密數(shù)據(jù)的使用時(shí)間不長(zhǎng),因而使用DES算法和64位長(zhǎng)度的密鑰進(jìn)行加密是安全的。

      2.2 組密鑰生成

      本軟件通過登錄時(shí)動(dòng)態(tài)獲取計(jì)算機(jī)的MAC 地址(下文簡(jiǎn)稱為MAC),經(jīng)過一系列算法,生成該組計(jì)算機(jī)共用的組密鑰。通過組密鑰,可以定義同組計(jì)算機(jī)。

      如圖7所示,部署同組計(jì)算機(jī)時(shí),首先確定一組計(jì)算機(jī)(默認(rèn)為三臺(tái))。進(jìn)入部署界面,在各個(gè)計(jì)算機(jī)中分別獲取本地計(jì)算機(jī)的唯一標(biāo)識(shí),此時(shí)同組計(jì)算機(jī)的三個(gè)MAC 均已獲取到。把另外兩臺(tái)計(jì)算機(jī)的MAC對(duì)應(yīng)填入輸入框,與獲取的本機(jī)MAC 一起,進(jìn)行一系列的操作,生成組密鑰。

      圖7 部署計(jì)算機(jī)圖

      生成過程,根據(jù)三個(gè)有序輸入的MAC,進(jìn)行規(guī)則性排列拼接等操作,對(duì)混合生成的初始密鑰,進(jìn)行散列處理,得到中間密鑰。對(duì)中間密鑰進(jìn)行DES 加密處理,生成組密鑰。

      如此,就可以使部署在三臺(tái)計(jì)算機(jī)上的三個(gè)子系統(tǒng)初始化得到相同的組密鑰,組密鑰登錄時(shí)即生成,存放在內(nèi)存中,程序退出時(shí)組密鑰銷毀,保證了密鑰存放的安全。

      2.3 數(shù)據(jù)安全性設(shè)計(jì)

      系統(tǒng)加密后生成的文件都是以密文形式保存在文件中。要獲得明文,需要用解密子系統(tǒng)進(jìn)行操作。一、二次加密子系統(tǒng)沒有設(shè)置解密功能,這可以保證只有解密子系統(tǒng)才可解密,防止一、二次加密過程中因人為因素而發(fā)生數(shù)據(jù)泄露的情況。

      Java Excel API 是一個(gè)開放源碼項(xiàng)目,它既能從本地系統(tǒng)中讀取Excel 電子表格,也能從輸入流中讀取Excel電子表格,導(dǎo)出各種樣式的Excel表。本系統(tǒng)使用此API,將要加密的信息以明文形式保存在內(nèi)存中,對(duì)明文進(jìn)行加密,將加密后得到的密文寫入Excel表中,對(duì)重要數(shù)據(jù)進(jìn)行加密轉(zhuǎn)化。只有通過組密鑰才可以正確解密文件中的信息,從而使計(jì)算機(jī)中的數(shù)據(jù)信息變得比較安全,由此可以減小抽簽信息的泄露的可能性。

      表格中的數(shù)據(jù)采用雙隨機(jī)設(shè)計(jì)。在一次加密子系統(tǒng)中,生成的隨機(jī)參賽編號(hào)模擬實(shí)地抽簽時(shí)在抽簽箱中的參賽編號(hào),根據(jù)系統(tǒng)時(shí)間戳,隨機(jī)生成參賽編號(hào)。為保證參賽編號(hào)的唯一性,生成時(shí)會(huì)判斷該編號(hào)是否已存在,若存在則繼續(xù)生成,直到生成的參賽編號(hào)唯一時(shí)才寫入文件。

      此外,為增加安全性和隨機(jī)性,對(duì)將要在表格中放置的參賽編號(hào)的次序進(jìn)行打亂處理,使得抽參賽編號(hào)的隨機(jī)性進(jìn)一步增強(qiáng),增強(qiáng)了抽簽數(shù)據(jù)對(duì)應(yīng)關(guān)系的安全性。

      每支賽隊(duì)抽簽時(shí),使用抽簽程序進(jìn)行算法處理,來模擬隨機(jī)性抽簽。當(dāng)系統(tǒng)得到一支賽隊(duì)要抽簽的指令時(shí),使用計(jì)算機(jī)當(dāng)前系統(tǒng)時(shí)間,隨機(jī)生成一個(gè)位置號(hào),判斷此位置號(hào)是否被占用,若為空則將賽隊(duì)信息放入,若不為空代表此位置號(hào)已被別的賽隊(duì)占用,繼續(xù)生成隨機(jī)位置號(hào),直到找到空位。隨機(jī)位置號(hào)的生成和當(dāng)前時(shí)間有關(guān),這保證了抽簽的隨機(jī)性。

      3 可靠性設(shè)計(jì)

      3.1 操作檢測(cè)功能

      本軟件的操作檢測(cè)功能會(huì)根據(jù)用戶當(dāng)前的使用情況,判斷此時(shí)軟件運(yùn)行的系統(tǒng)安全性和數(shù)據(jù)安全性。當(dāng)系統(tǒng)檢測(cè)到用戶的操作可能涉及軟件運(yùn)行的危害性和軟件數(shù)據(jù)的破壞性、錯(cuò)誤性時(shí),根據(jù)危害性的大小和緊急程度,及時(shí)發(fā)出不同級(jí)別的提示信息。如一般性危害的彈窗提示和緊急性破壞的軟件停用一定時(shí)間等高級(jí)保護(hù)措施來確保軟件的安全。

      3.2 斷電恢復(fù)

      本軟件設(shè)計(jì)了斷電恢復(fù)功能,以應(yīng)對(duì)系統(tǒng)使用過程中出現(xiàn)的異常情況,如斷電、程序誤操作退出等。

      一次加密子系統(tǒng)、二次加密子系統(tǒng)每次向文件中寫數(shù)據(jù)時(shí),將數(shù)據(jù)同時(shí)寫入工作文件和備份文件。當(dāng)?shù)卿浵到y(tǒng)時(shí),系統(tǒng)會(huì)檢測(cè)備份文件中的數(shù)據(jù),來判斷是否有未完成的抽簽任務(wù),如果有,則詢問用戶是否進(jìn)行恢復(fù)操作,若點(diǎn)擊“是”則恢復(fù)上次抽簽任務(wù),否則重新開啟新的一輪的抽簽流程。

      4 結(jié)束語

      本文通過對(duì)加密算法的學(xué)習(xí)和研究,創(chuàng)新的采用了計(jì)算機(jī)分組密鑰概念,采用了主流的散列算法和加密方式,設(shè)計(jì)了一種基于計(jì)算機(jī)硬件信息的密鑰共享機(jī)制。組內(nèi)計(jì)算機(jī)使用相同的組密鑰進(jìn)行數(shù)據(jù)加密,保障了數(shù)據(jù)的互通。本系統(tǒng)為保護(hù)參賽過程中的信息安全,所有的重要信息都做了亂序處理且以密文保存。此軟件可以應(yīng)用在職業(yè)院校技能大賽這種抽簽計(jì)算機(jī)不能聯(lián)網(wǎng)、且需要安全保管防抽簽排位信息泄密的場(chǎng)合,適用范圍很廣。在后續(xù)研究中,將進(jìn)一步優(yōu)化軟件的人性化操作設(shè)計(jì)、可靠性設(shè)計(jì)和安全性設(shè)計(jì),提高軟件的易用性。

      猜你喜歡
      順序號(hào)解密工位
      請(qǐng)珍惜那個(gè)工位永遠(yuǎn)有零食的同事
      解密“熱脹冷縮”
      關(guān)于參考文獻(xiàn)著錄格式
      解密“一包三改”
      精確WIP的盤點(diǎn)方法
      工位大調(diào)整
      意林(2020年10期)2020-06-01 07:26:37
      OKUMA MCR 系列加工中心ATC 故障修復(fù)
      炫詞解密
      濱江:全省首推工位注冊(cè)
      杭州(2015年9期)2015-12-21 02:51:49
      關(guān)于參考文獻(xiàn)著錄格式
      河池市| 三原县| 江安县| 唐河县| 临城县| 承德县| 濮阳县| 四平市| 沭阳县| 瓦房店市| 安宁市| 昔阳县| 康平县| 平山县| 镇安县| 应用必备| 桃园县| 泌阳县| 大英县| 通河县| 德庆县| 望江县| 微山县| 旬邑县| 霍林郭勒市| 灵山县| 固阳县| 阳东县| 微博| 西乌珠穆沁旗| 平顺县| 玉山县| 青龙| 南平市| 基隆市| 横峰县| 威海市| 阆中市| 怀安县| 湘乡市| 阿勒泰市|