《C語言課程設(shè)計(jì)》課程設(shè)計(jì)數(shù)據(jù)的加密與解密

上傳人:仙*** 文檔編號:26933715 上傳時間:2021-08-14 格式:DOC 頁數(shù):15 大?。?86.01KB
收藏 版權(quán)申訴 舉報(bào) 下載
《C語言課程設(shè)計(jì)》課程設(shè)計(jì)數(shù)據(jù)的加密與解密_第1頁
第1頁 / 共15頁
《C語言課程設(shè)計(jì)》課程設(shè)計(jì)數(shù)據(jù)的加密與解密_第2頁
第2頁 / 共15頁
《C語言課程設(shè)計(jì)》課程設(shè)計(jì)數(shù)據(jù)的加密與解密_第3頁
第3頁 / 共15頁

下載文檔到電腦,查找使用更方便

15 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《《C語言課程設(shè)計(jì)》課程設(shè)計(jì)數(shù)據(jù)的加密與解密》由會員分享,可在線閱讀,更多相關(guān)《《C語言課程設(shè)計(jì)》課程設(shè)計(jì)數(shù)據(jù)的加密與解密(15頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。

1、 《C語言課程設(shè)計(jì)》 課程設(shè)計(jì)報(bào)告 題 目 數(shù)據(jù)的加密與解密 學(xué) 號 ********* 姓 名 *** 年級專業(yè) 2010級通信工程 指導(dǎo)教師 完成日期 2011 年 6 月 17 日 安徽師范大學(xué)物理與電子信息學(xué)院 College of Physics and Electronic Information, Anhui Normal University 目錄 目錄…………………………………………………………………………1 課程設(shè)計(jì)任務(wù)書…………………………………………………

2、…………2 摘要…………………………………………………………………………3 關(guān)鍵詞………………………………………………………………………3 原理…………………………………………………………………………3 1. 系統(tǒng)功能分析……………………………………………………………4 1.1 設(shè)計(jì)目的…………………………………………………………………4 1.2 功能描述…………………………………………………………………4 2. C語言程序編寫…………………………………………………………5 2.1程序結(jié)構(gòu)圖…………………………………………………………5 2.2程序流程圖…………………………

3、………………………………5 2.3 具體程序源代碼……………………………………………………8 3. C語言程序功能示例……………………………………………………11 4. 設(shè)計(jì)總結(jié)…………………………………………………………………12 5. 參考文獻(xiàn)…………………………………………………………………13 《C語言程序》課程設(shè)計(jì)任務(wù)書 題 目 數(shù)據(jù)的加密與解密 設(shè) 計(jì) 目 的 將某一已知文件的內(nèi)容(僅限于英文字母)以字符形式讀出,根據(jù)密鑰(用戶從鍵盤輸入)將對應(yīng)字符進(jìn)行移位操作即可,解密時移動相反。 例如:加密:設(shè)原文為abc

4、def,密鑰為5,則有abcdef每個字母按字母表向后移動5位(注:z后接a)可得到密文(亂碼)fghijkl;對該文件解密:文件內(nèi)容為fghijk1,密鑰為5,則有fghijk1每個字母向前移動5位(注a后接z),可得到原文abcdef。 設(shè) 計(jì) 進(jìn) 度 安 排 第一階段:選擇課程設(shè)計(jì)的題目 第二階段:搜尋有關(guān)課程設(shè)計(jì)的資料,查閱相關(guān)的書籍 第三階段:開始編冉C語言程序 第四階段:完成了C訓(xùn)言程序的編寫,開始撰寫C語言菾程設(shè)計(jì)報(bào)告 第五階段:完成了C語言課程設(shè)計(jì)報(bào)告的撰寫 教師審核 簽名 摘要 隨著現(xiàn)代化

5、的發(fā)展,人們的數(shù)據(jù)需要更笀便、安全和可靠的加密管理模式。設(shè)計(jì)一個基于C語言的數(shù)據(jù)加密及解密軟件,可以方便對數(shù)據(jù)的加密與解密。本設(shè)計(jì)實(shí)現(xiàn)了數(shù)據(jù)的加密及?密,運(yùn)行軟件之后只需輸入英文句子倎,再輸入換位位數(shù)(密鑰),即可輸出密文,也即對該數(shù)據(jù)進(jìn)行加密;輸入密文后再輸入換位位數(shù)則可輸出明文,即解密操作。朄設(shè)計(jì)的加密?解密系統(tǒng),運(yùn)用了C語言程序設(shè)計(jì)的知識,具有對英文文本加密和解密的功能,并在此基礎(chǔ)上可進(jìn)行對文件的操作。 關(guān)鍵詞 C語言; 程序設(shè)計(jì); 換位法 換位位數(shù) 數(shù)據(jù)加密與解密; 原理 輸入方向 輸出方向 c a n y o u c o

6、m e h e r e a b 換位法加密示意 換位法加密的原理是將英文句子中的空格去除,然后將句子排成若干行,每行的字符數(shù)為換位位數(shù),再按列輸出即為密文,不足部分填入隨機(jī)字母。例如英文Can you come here若換位位數(shù)取4,則密文為comraueenchayoeb,如右圖所示。 一、系統(tǒng)功能分析 1.1設(shè)計(jì)目的 本課程設(shè)計(jì)的目的是為了保證個人數(shù)據(jù)資料不被他人非法竊取使用,保護(hù)個人的隱私及重要文件! 1.2功能描述 本程序主要是對已知文件(為英文字符)通過一定的算法將其轉(zhuǎn)換成非本身的其他英文字母以達(dá)到文件加密的目的。整個系統(tǒng)由以下幾

7、大功能模塊組成。 1.2.1主控選擇模塊 此模塊是主程序操作界面,供用戶進(jìn)行選擇。用戶可選擇執(zhí)行加密或解密操作。 1.2.2加密模塊 加密模塊主要是完成對文件的加密操作。從外部文件中讀入任意一個文件并將它加密并顯示出來! 1.2.3解密模塊 解密模塊是完成對文件的解密工作,將密文轉(zhuǎn)換為可被識別的明文。從外部文件中讀入任意一個文件并將它解密并顯示出來! 本綜合訓(xùn)練是計(jì)算機(jī)科學(xué)與技術(shù)、信息管理與信息系統(tǒng)、軟件工程專業(yè)重要的實(shí)踐性環(huán)節(jié)之一,是在學(xué)生學(xué)習(xí)完《C語言程序設(shè)計(jì)》 《數(shù)據(jù)結(jié)構(gòu)》課程后進(jìn)行的一次全面的綜合練習(xí)。本課綜合訓(xùn)練的目的和任務(wù): 1. 鞏固和加深學(xué)生對C語言

8、、數(shù)據(jù)結(jié)構(gòu)課程的基本知識的理解和掌握; 2. 掌握C語言編程和程序調(diào)試的基本技能; 3. 利用C語言進(jìn)行基本的軟件設(shè)計(jì); 4. 掌握書寫程序設(shè)計(jì)說明文檔的能力; 5. 提高運(yùn)用C語言、數(shù)據(jù)結(jié)構(gòu)解決實(shí)際問題的能力。 二、C語言源程序編寫: 2.1程序結(jié)構(gòu)圖: 主 函 數(shù) 返回 調(diào)用 char *encode (char *dest,char *s1,int key) char *decode(char *dest,char *str,int key) 2.2程序流程圖 int main() #includ

9、e #include #include #define CODELEN 256 開始 判斷字符串str中的空格和字符串結(jié)尾 gets(str) char s1[CODELEN] char str[CODELEN] char xstr[CODELEN] if(s1[0]>=A&&s1[0]<=Z) s1[0]=s1[0]+32 去除空格,str變成s1 函數(shù)調(diào)用 if(decode(s1,xstr,key)!=NU

10、LL) scanf("%d",&key);即加密字節(jié)數(shù) 函數(shù)調(diào)用encode(xstr,s1,key); 函數(shù)定義 char*decode(char *dest,char *str,int key) 函數(shù)定義 char*encode(char *dest,char *s1,int key) int i,j,len,n=0; len=strlen(str); int i,j,len,len2,n=0;計(jì)算字符串s1的長度 len=strlen(s1); if((len% key)!=0 if((len % key)!=0) le

11、n2=len+key-(len % key); else len2=len; return NULL; len2=len; for(i=0;i

12、 return dest 顯示 結(jié)果 結(jié)束 2.3、具體程序源代碼如下: #include #include #include #define CODELEN 256 char *encode(char *dest,char *s1,int key) { int i,j,len,len2,n=0; len=strlen(s1); if((len % key)!=0) len2=len+key-(len

13、% key); else len2=len; (timesrand(NULL)); for(i=len;i

14、 return dest; } char *decode(char *dest,char *str,int key) { int i,j,len,n=0; len=strlen(str); if((len % key)!=0) return NULL; len=(len / key); for(i=0;i

15、st; } int main() { int key,i,j,len; char s1[CODELEN]; char str[CODELEN]; char xstr[CODELEN]; printf("Please enter a string:"); gets(str); { int m=0,i=0,t; char ch; t=strlen(str); for(i=0;i

16、[m]=ch; if(s1[0]>=A&&s1[0]<=Z) s1[0]=s1[0]+32;} puts(s1); printf("Please enter a digit:"); scanf("%d",&key); encode(xstr,s1,key); printf(“The mi wen is:”); printf("%s\n",xstr); if(decode(s1,xstr,key)!=NULL) {;} else { printf("NUL

17、L");} { int a; char s2[CODELEN]; printf("Please enter again a digit:"); scanf("%d",&a); getchar(); printf("Please enter again a string:"); gets(s2); if(a==key&&s2[0]==s1[0]) { printf(“The ming wen is:”); puts(str); } printf(“****”); printf(“****”); } } 三、C語言程序功能示例: 操作過程中的截圖:

18、 測試數(shù)據(jù): Please enter a string:Nice to meet you Please enter a digit:4; The mi wen is:nteuiotacmyfeeok Please enter again a digit:4 Please enter again a string: Nice to meet you ******** Ple

19、ase enter a string:Well down boby Please enter a digit:4; The mi wen is:wdbeoolwblny Please enter again a digit:4 Please enter again a string: Well down boby ******** 四、設(shè)計(jì)總結(jié) 通過這次課程設(shè)計(jì),我學(xué)到了許多東西,在完成設(shè)計(jì)的過程中也遇到了許多的問題,通過不斷的查資料,和向老師同學(xué)的請教,使得大部分問題得到

20、了解決。并且解決問題的過程中我也學(xué)到了很多東西。 在設(shè)計(jì)過程中,主要遇到的問題就是文件的操作問題,以前學(xué)習(xí)的時候,對文件的操作掌握的不是很好,但在做課程設(shè)計(jì)時會常常用到,經(jīng)認(rèn)真看書后解決了這個問題。還有就是對讀取文本文件中的內(nèi)容不停止(一直讀下去)的問題。首先是密碼的存儲識別,后用fgetc(fp))!=EOF函數(shù)解決,使得讀函數(shù)不會無限讀下去,讀完后停止并還回文本內(nèi)容;其次是密碼太多時會出現(xiàn)亂碼的問題,后用while()函數(shù)解決。 雖然在課程設(shè)計(jì)過程中修改了很多次,但程序還是很不完美,有一些問題未能解決。比如說程序的界面不夠美觀,不夠人性化;在對密碼的處理上也不甚太好,可能存在安全隱患。

21、我將在以后的時間里繼續(xù)努力,不斷充實(shí)自己。 附軟件說明: 本程序采用宏定義方式定義字符串的大小,增加了程序的通用性, 本程序基本實(shí)現(xiàn)了要求的內(nèi)容:1.采用換位法進(jìn)行加密和解密; 2.輸入英文句子后,再輸入換位位數(shù)(密鑰),即可輸出密文; 3.輸入密文后再輸入換位位數(shù)則可輸出明文; 數(shù)據(jù)的加密與解密的使用方法: 1.加密使用方法: 首先輸入一個加密字符串(即明文),然后再輸入加密字?jǐn)?shù)(即密鑰),即可顯示結(jié)果(密文)。 2.解密使用方法: 首先輸入解密字節(jié)數(shù)(密鑰),然后再輸入密文,即可顯示結(jié)果(即明文)。 五、參考文獻(xiàn) 1. 譚浩強(qiáng)

22、C語言程序設(shè)計(jì)(第二版).高等教育出版社,2002 2. 黃維通 C語言程序設(shè)計(jì) 清華大學(xué)出版社 3. 徐士良等. C語言常用算法程序集 清華大學(xué)出版社 4. 馬靖善等. C語言程序設(shè)計(jì).清華大學(xué)出版社,2005 5. 張毅坤等. C語言程序設(shè)計(jì)教程[M] .西安交通大學(xué)出版社,2003 物理與電子信息學(xué)院課程設(shè)計(jì)評定意見 指導(dǎo)教師評語 主要內(nèi)容包括:設(shè)計(jì)報(bào)告內(nèi)容的完整性和完成情況、報(bào)告格式的規(guī)范性、通過課程設(shè)計(jì)取得的收獲等。 成績: 簽名: 年  月  日 注:本頁與上一頁用A3紙?zhí)子〕煞饷婧头獾?,課程設(shè)計(jì)報(bào)告正文用A4紙打印然后裝訂 14

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

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!