李晶晶 殷新春



摘? 要: 本文針對大量的多媒體學習資源,快速查找對應的學習資源相對繁瑣,由于二維碼技術日臻成熟,并且討論了二維碼技術運用在多媒體學習資源中的可行性,將二維碼技術與多媒體學習資源結合運用到立體化教材建設中,在實際運用二維碼時,由于QR碼容易被攻擊,因此采用矩陣式二維碼中的QR碼,并結合信息加密技術RC4加解密算法,保證二維碼信息的安全保密性。設計并實現一個應用二維碼技術的學習資源管理系統,包括學習資源管理系統和二維碼掃描子系統,主要分為PC端編碼模塊的和Android手機端解碼模塊。實踐表明,二維碼運用在系統具有明顯的優勢,在學習資源管理中使用二維碼提高了管理和使用的效率。
關鍵詞: 立體化教材;二維碼;RC4加密算法;學習資源管理;J2EE
中圖分類號: TP311. 52? ? 文獻標識碼: A? ? DOI:10.3969/j.issn.1003-6970.2019.01.004
【Abstract】: This paper aims at a large number of multimedia learning resources, quick search for the corresponding learning resources is relatively cumbersome, as the two-dimensional code technology matures, and discusses the feasibility of using two-dimensional code technology in multimedia learning resources, the combination of two-dimensional code technology and multimedia learning resources is applied to the construction of three-dimensional teaching materials. In practice, QR code is easy to be attacked, so QR code in matrix two-dimensional code is adopted, and RC4 encryption and decryption algorithm is combined to ensure the security of two-dimensional code information. Design and implement a learning resource management system using two-dimensional code technology, including learning resource management system and two-dimensional code scanning subsystem, mainly divided into PC-side encoding module and Android phone-side decoding module. Practice shows that the use of two-dimensional code in the system has obvious advantages in the use of two-dimensional learning resources management to improve the management and use of efficiency.
【Key words】: Dimensional textbooks; Two-dimensional code; RC4 encryption algorithm; Learning resource management
0? 引言
當前已經有許多高校將多媒體教學和網絡教學運用到實際教學中,這些教學方式會產生大量的多媒體教學資源,例如音頻課件、視頻課件、教學PPT以及相關練習等等,如何對這些資源進行管理就成為一項重要課題。因此提供一個既方便教師教學和對教學資源進行統一管理,又能方便學生自主學習的平臺成為了一項重要任務。
隨著國家信息化步伐的加快、智能手機的全面普及,二維碼技術日臻成熟[1],這為二維碼技術在傳統出版中的應用提供了土壤與條件。立體化教材是由立體化的學習資源和網絡教學組成的,這兩個部分是教材的立體化建設的重要組成部分[2],所以在立體化教材建設中應用二維碼技術[3]。學習資源管理系統管理的是立體化教材中的學習資源,該系統對促進高校教學的改革與創新,提高自主學習的水平,以及實現學習資源的共享起到重要的作用,學習資源管理系統的設計與實現具有重要的實際應用價值。
1? 關鍵技術
1.1? 整合技術
本文介紹的是學習資源管理系統設計與實現。系統PC端采用B/S模式,Android手機端采用C/S模式,系統采用三層體系結構,并使用了SSH整合框架,該系統具有良好的穩定性、靈活性、可伸縮性和易維護性,以及操作簡單、方便。
搭建一個合適的系統開發環境可以使得系統開發者有效、快速、方便地建立學習資源管理系統,有效地實現系統的各種功能,更好地滿足用戶需求。本系統選用的服務器端操作系統是Windows,同時選擇了Tomcat作為該系統應用服務器。在數據庫的選擇上,我們通過MySQL與其他幾種數據庫的比較,MySQL關系型數據庫功能強大,不僅速度快,而且支持多平臺和多種開發語言,以及能提供多種存儲器引擎,同時也能夠支持大型數據庫,根據MySQL數據庫的這些特點,我們選擇了MySQL關系型數據庫。PC端開發工具選擇MyEclipse,采用的是Java編程語言,使用J2EE體系結構進行開發[4],并采用采用J2EE框架[5]。Android手機端開發工具選擇Eclipse,也采用的是Java編程語言。
1.2? 安全技術
由于在二維碼編譯碼中,安全漏洞是不可避免會出現的狀況。通過分析現有的幾種典型的攻擊方式,我們需要在編碼的環節中添加加密方法并且在譯碼環節進行解密。通過認證手段將編譯碼的安全性得到提升,進行安全管理。為了提升二維碼信息的安全性與保密性,我們通過信息加密技術對環節進行處理;為了使用戶獲取的信息的正確性得到保證,所以我們需要在系統中添加認證管理手段,所以將RC4加密算法使用在二維碼信息加密的過程中,以此來保證二維碼的安全。
我們發現RC4算法不僅具有算法實現簡易,而且安全性能高的特點,而且RC4算法在加密速度上也表現優異,能夠快速加密。同時還具有RC4算法的密鑰長度可變,一般采用256個字節的特點。
序列密碼算法中最典型的算法就是RC4加密算法。在二維碼編譯碼的流程中加入RC4加密算法,該算法不僅有固定的密文序列長度,而且該長度還與明文序列長度相等,因此二維碼圖形的結構和糾錯碼的糾錯性能不會因為信息長度的變化而受到影響。
密鑰調度算法(KSA)和偽隨機數生成算法(PRGA)這兩個都是RC4算法的子算法。KSA產生密鑰流生成器的初始狀態S0,其依據是可變長度的加密密鑰,密鑰流Zt是由PRGA根據S0產生的。密文是由Zt與明文異或之后得到的,并且Zt與密文異或就可以進行解密其具體的算法如下:
2? 系統總體設計
2.1? 功能設計
本系統應用于高校的課堂教學和自主學習過程中,為教師給書本中和教學PPT中添加的二維碼進行學習資源管理提供了平臺。該系統給教師和學生提供方便,不僅提高教師的教學效率,而且提供學生的自主學習效率,因此實用性很強。該系統實現學習資源以及相對應的二維碼的管理,有效地將書上的知識內容以及課堂上的學習內容通過二維碼編輯分類,通過本系統對學習資源進行分類管理,學生可以通過客戶端掃描書本上知識點所對應的二維碼有效地快速查找學習資源,并且教學過程中教師可以在教學PPT中公布對應知識的二維碼,如果學生在聽課過程中可以掃描PPT上的二維碼深入學習,并且通過使用記錄和我的收藏功能,更好的了解自己的自主學習情況,同時教師根據學生的學習行為記錄,分析出學生感興趣的知識點、錯誤率高的題目以及客觀公正的給出學生的平時成績。學生使用Android手機客戶端掃描二維碼獲取自己所需的多媒體學習資源,使得自主學習更加簡單、方便[9]。
學習資源管理系統的總體功能模塊有用戶管理、權限管理、資源管理、數據管理、學生行為記錄管理以及二維碼生成這六大功能模塊,其中每個大的模塊又分為許多小的模塊,具體如圖1所示。
2.2? 流程設計
本系統主要由學習資源管理系統和Android客戶端的二維碼掃描子系統這兩個部分組成,本文對學習資源管理流程和二維碼掃描的子系統的流程進行了詳細地分析,不同的用戶角色具有的功能不同,在用戶登錄時對用戶角色進行判定,進入不同的用戶功能頁面,系統的詳細流程圖如圖3和4所示。
3? 二維碼功能實現
3.1? 二維碼生成功能
在PC端完成二維碼生成功能,該功能是把教學視頻、教學PPT、知識擴展、相關練習以及課堂鏈接的學習資源編譯生成二維碼或活碼,生成二維碼的同時還要確保其安全性[10]。
(1)二維碼編碼
矩陣式二維碼類型中的QRCode是本系統所選擇的二維碼編碼方式。我們得到的二維碼圖形是通過以下四種不同的標準化編碼模式。根據這四種編碼模式的數據內容,可以簡單地概括成:數字、字母數字、二進制字節以及漢字,具體編碼的流程如下步驟所示。
Step 1:通過原始的信息的獲取進而得到該信息的數據類型。依據上述分析得到的結果選擇最為合適的編碼模式,即效率最高者。
Step 2:通過上一步驟得到的效率最高的編碼模式,我們可以對原始的信息作進一步處理:轉換為二進制比特流后,再進行信息的編碼。
Step 3:通過信息的數據量將碼字進行分塊處理,通過糾錯編碼將分塊后的數據容量形成對應的糾錯信息碼,再依照分塊順序對其進行合并,得到最終糾錯結果:糾錯碼[11-12]。
Step 4:得到數據和糾錯碼之后,按照規則將每一塊中放入數據和糾錯碼,在必要的時候還要加剩余位。
Step 5:將尋像圖形、分隔符、矯正圖形和碼字,按照規則排列,放入矩陣。
Step 6:用八種掩模圖形按照順序處理在位圖中編碼區域的符號進行掩模處理,分析經過掩模處理后的8種結果,選擇相對而言最優的一種。
Step 7:最后生成版本信息(如果有需求)和格式信息,構成符號,得到QR碼圖片,具體編碼的流程如圖5所示。
(2)二維碼加密
在二維碼編解碼過程中,難以避免問題的就是安全漏洞。通過分析現有的幾種典型的攻擊方式,我們需要在編碼的環節中添加加密方法并且在解碼環節進行解密。通過認證手段將編解碼的安全性得到提升,進行安全管理。為了提升二維碼信息的安全性與保密性,我們通過信息加密技術對環節進行處理;為了使用戶獲取的信息的正確性得到保證,所以我們需要在系統中添加認證管理手段。通過對比其他加密算法,我們發現RC4算法[13]不僅算法實現簡易,而且它的安全性能較高。不僅如此,RC4算法在加密速度上也表現優異。RC4算法的密鑰長度可變,一般采用256個字節,所以將RC4加密算法運用在二維碼信息加密過程中,具體是應用于QR碼的編碼環節,并采用的QR碼的雙重加密策略[14-15],具體如圖6所示。
(3)二維碼保存
生成后的二維碼圖片需要進行保存。本系統的資源上傳功能就實現了將生成的二維碼圖片上傳到數據庫,同二維碼圖片一起上傳保存的還有與該二維碼圖片相對應的知識點ID、圖書號、書名、知識點內容。
3.2? 二維碼掃碼功能
二維碼掃碼功能是在Android手機端完成,通過用手機掃描書本中的二維碼和PPT中公布的二維碼,獲得教學視頻、教學PPT、知識擴展、相關練習以及課堂鏈接這些不同類型學習資源的完整信息。
(1)二維碼解碼
二維碼的編碼過程是將數據內容轉化為二維碼圖形,那么二維碼的解碼過程就是將二維碼圖形掃描識讀完成數據內容輸出,這個過程被稱為編碼的逆過程。具體的解碼流程如下所示。
Step 1:通過手機端對二維碼圖形掃描,進行圖形識讀。
Step 2:二維碼圖形上面一共有三個方塊,在任何方向都可以對二維碼圖形進行掃描
就是這三個方塊起到的作用。要對二維碼圖形進行解碼,那么就要對這三個方塊進行圖形探測。確定QR二維碼的方向和位置的方法是尋像圖形和定位圖形,并且要校正圖像,從而確定采樣網絡。
Step 3:對數據進行糾錯,就要識別模塊的深淺,讀取格式,以及二維碼版本的信息,消除掩模,恢復數據的內容和糾錯信息碼,數據和糾錯進行解碼對比。糾錯和解碼同時進行,并且錯誤檢查是通過糾錯碼進行的。
Step 4:在糾錯解碼之后,就要對數據信息進行解碼。
Step 5:輸出顯示信息的內容,具體的解碼流程如圖7所示。
(2)二維碼解密
因為在二維碼編碼的過程中使用了RC4算法雙重加密策略,所以在二維碼的解碼過程里面,就要對二維碼的進行解密,具體如圖8所示。
4? 系統測試
軟件測試是軟件開發過程的重要組成部分,大致包括了功能測試、性能測試、兼容性測試、安全性測試等。對系統進行測試的目的就是要用最少的時間和人力,找出系統中存在的各種各樣的錯誤、漏洞以及缺陷,同時來確認系統的功能或性能是否與系統開發之前所提出的一些需求相符合。
(1)系統兼容性測試
進行學習資源掃描子系統兼容性測試的平臺是Testin(一站式移動應用測試平臺),測試過程中選用了市場上較為主流的50款機型。測試內容包括初始化、安裝、啟動、遍歷,Monkey等測試項。測試通過率為90%,其中2款初始化失敗,3款安裝失敗。初始化失敗可能是應用程序組件丟失,應用程序完整的運行需要一些系統文件的支持;安裝包可能有損壞。安裝失敗的可能是安卓手機客戶端內存不足;安裝apk時出現解析包錯誤;系統版本限制(比如手機支持2.3系統,而應用程序只支持4.0及以上系統),部分的測試結果如圖9所示。
(2)系統性能測試
學習資源掃描子系統進行性能測試是為了確保該子系統在不同的移動客戶端具有良好的使用性能,測試結果的性能概況圖中可以看出,安裝時間是7.35s,啟動時間是0.62s,CPU占用率是1.58%等,學習資源掃描子系統進行性能測試的具體結果如圖10所示。
5? 結論
學習資源管理系統在設計和開發的過程中結合了現代軟件工程理論、J2EE體系結構,以及SSH三大框架,將學習資源管理作為系統的設計和實現目標,對系統的功能模塊、系統架構、以及數據庫進行了具體設計與實現,使得更加合理的進行學習資源管理成為可能。為實現教師輔助教學、管理學習資源以及學生自主學習,本文設計并實現一個學習資源管理系統。教師用戶使用本系統將教學視頻、教學PPT,相關練習等學習資源生成二維碼,并且可以對書本以及課件中添加的學習資源二維碼進行管理。該系統實現了對學習資源以及相對應的二維碼的管理功能。教師可以在教學過程中的教學PPT上加入對應知識的二維碼,學生可以掃描PPT上的二維碼進行深入學習,同時教師根據學生的學習行為記錄,分析出學生感興趣的知識點、錯誤率高的題目從而可以客觀公正的給出學生的平時成績。學生用戶可以使用移動客戶終端掃描方掃描書本上知識點所對應的二維碼有效快速地查找、獲取學習資源。該系統有利于提高教師的教學效率和學生自主學習的興趣,因此這個系統具有很強的實用性。
參考文獻
[1] 錢鵬. 二維碼技術在高校多媒體教學中的應用[J]. 實驗室研究與探索, 2014(4): 255-259.
[2] 魏江江. 立體化教材建設的思考與實踐[J]. 科技與出版, 2011(9): 30-32.
陳睿. 二維碼在教育類圖書升級中的運用[J]. 出版廣角, 2017, (2): 56-57.
郝玉龍. Java EE編程技術(第2版)[M], 北京: 北京交通大學出版社, 2013.
張建軍, 劉虎. 基于ExtJS的J2EE輕量級框架的研究與應用[J]. 計算機應用與軟件, 2014(4): 73-76.
侯整風, 孟毛廣, 朱曉玲, 等. RC4流密碼算法的分析與改進[J]. 計算機工程與應用, 2015, 51(24): 97-101.
Jindal P, Singh B. Performance analysis of modified RC4 encryption algorithm[C]// Recent Advances and Innovations in Engineering. IEEE, 2014: 1-5.
胡亮, 遲令, 袁巍等. RC4算法的密碼分析與改進[J]. 吉林大學學報: 理學版, 2012, 50(8): 511-516.
李晶晶. 基于“MOOC+SPOC”的學習資源管理系統的設計與實現[D]. 揚州大學, 2018.
高彥受, 許春根. 安全實用的二維碼研究與實現[J]. 信息網絡安全, 2012(10): 47-50.
馮漢祿, 黃穎為, 牛曉嬌, 錢銀超. QR碼糾錯碼原理及實現[J]. 計算機應用與軟件, 2013, 30(6): 295-297.
Wen-Chuan Wu. Quantization-based image authentication scheme using QR error correction [J]. Eurasip Journal on Image & Video Processing, 2017(1): 13.
周文倩, 馬燕, 李順寶, 等. 應用于QR碼信息加密的RC4改進算法[J]. 計算機工程, 2015, 41(8): 105-109.
張彬, 王岳. 二維碼的安全技術研究[J]. 信息安全與通信保密, 2015(10): 110-113.
于英政, 許宏麗. 基于QR二維碼的多級融合加密算法的設計與實現[J]. 計算機與數字工程. 2014, 42(12): 2362-2364.