2017-2018-2 165X 『Java程序設計』課程
團隊項目備選題目
結合本課程時間安排,以及同窗們的專業和課程內容,制定瞭如下六個題目供各小組選擇。若有其餘項目方案設想,可自行與老師溝通。老師贊成後亦可做爲團隊項目。html
————————CONTENTS————————
題目一:黃金點遊戲
(1)問題描述
黃金點遊戲是一個數字小遊戲,其遊戲規則是:java
N個同窗(N一般大於10),每人寫一個0~100之間的有理數 (不包括0或100),交給裁判,裁判算出全部數字的平均值,而後乘以0.618(所謂黃金分割常數),獲得G值。提交的數字最靠近G(取絕對值)的同窗獲得N分,離G最遠的同窗獲得-2分,其餘同窗得0分。玩了幾天之後,你們發現了一些頗有意思的現象,好比黃金點在逐漸地往下移動。android
(2)基本要求
請根據這個遊戲規則,編一個能夠多人一塊兒玩的小遊戲程序,要求以下:算法
- 一、儘可能以C/S或B/S方式實現,即利用服務器接收和處理全部玩家提交的數字,並將結果反饋給各玩家,玩家能夠經過客戶端提交的數字;
- 二、若是採用單機方式實現,須要爲用戶提供便利的輸入界面;
- 三、該遊戲每次能夠運行10輪以上,並可以保留各輪比賽結果。
詳細描述可參考鄒欣老師的博客:創新的時機 – 黃金點遊戲數據庫
返回目錄安全
題目二:RSA—DES混合密碼功能模塊
(1)問題描述
因爲RSA不適於直接加密大量明文,且DES的密鑰並不大,所以用DES來加密明文,再用RSA加密DES的密鑰,將RSA公鑰公開,私鑰保密,只有掌握公鑰方纔可經過私鑰解密.服務器
(2)基本要求
- 一、產生密鑰對時,p,q,d,e參數選取合理,並可導出。
- 二、待加密文件可進行選擇。
- 三、解密後輸出到另外一個文件中。
- 四、程序功能完善,界面友好。
返回目錄加密
題目三:客戶端-服務器安全信息傳遞系統
(1)問題描述
基於Java語言開發,結合密碼學算法,實現一個安全的信息發送接收系統。spa
(2)基本要求
- 一、服務器可同時與多個客戶端通訊。
- 二、對全部通訊內容用分組密碼進行加密。
- 三、對全部的通訊內容用認證碼(MAC)進行完整性檢驗。
- 四、程序功能完善,界面友好。
返回目錄設計
題目四:基於Android的文件加密系統
(1)問題描述
在Android平臺上基於AES/DES等加密算法實現文件加解密。
(2)基本要求
- 一、待加密文件可進行選擇。
- 二、可自行選擇分組算法。
- 三、程序功能完善,界面友好。
返回目錄
題目五:Schnorr身份識別協議的實現
(1)問題描述:
Schnorr身份識別協議的身份識別過程以下:
- P任選一整數r∈[1,q-1],計算X=ar mod p 並將X和證書CerP送給V。
- V驗證CerP中TA的簽名。若是成功,則任選一整數e∈[1,2t-1],做爲V對P的「詢問」,發送給P。
- P計算s=r+xe mod q ,s當作是P對V的「應答」,發送給V。
- V給證asye mod p =X是否成立,若成立,則V相信對方就是P。
其中p和q都是大素數,且q∣(p-1),a∈Zp*,aq=1 mod p。x∈Zq爲P的私鑰,公鑰y=a-x mod p,t爲安全參數。
(2)基本要求:
- 一、能模擬P、V雙方。
- 二、程序功能完善,界面友好。
返回目錄
題目六:數據庫安全存儲系統
(1)問題描述:
設計一款數據庫加密系統,用戶輸入的數據加密後(Hash等)存儲。如:用戶信息註冊系統,用戶名以明文存儲,密碼加密存儲。用戶登陸時輸入密碼,哈希後與數據庫比對,一致則登陸成功。
(2)基本要求:
- 一、程序功能完善,界面友好。
- 二、直接存儲哈希值易遭受字典破解(Dictionary Attack)、暴力破解(Brute Force Attack),甚至逆向查表法(Reverse Lookup Tables)、彩虹表(Rainbow Tables)等攻擊。可考慮「加鹽」(Salt + Hash)將密碼加密後再存儲進數據庫。具體描述可參考相關文獻。
返回目錄