網(wǎng)絡(luò)空間安全概論 實(shí)驗(yàn)1加密 加密解密_第1頁
網(wǎng)絡(luò)空間安全概論 實(shí)驗(yàn)1加密 加密解密_第2頁
網(wǎng)絡(luò)空間安全概論 實(shí)驗(yàn)1加密 加密解密_第3頁
網(wǎng)絡(luò)空間安全概論 實(shí)驗(yàn)1加密 加密解密_第4頁
網(wǎng)絡(luò)空間安全概論 實(shí)驗(yàn)1加密 加密解密_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

數(shù)據(jù)加密解密與口令認(rèn)證凱撒\t"/qq_51212018/article/details/_blank"加密與解密愷撒密碼的加密、解密方法還能夠通過同余的數(shù)學(xué)方法進(jìn)行計(jì)算。首先將字母用數(shù)字代替,A=0,B=1,…,Z=25。此時(shí)偏移量為n的加密方法即為:En(x)=(x+n)mod26;解密就是:Dn(x)=(x-n)mod26;對(duì)稱加密:采用了對(duì)稱密碼編碼技術(shù),它的特點(diǎn)是文件加密和解密使用相同的密鑰加密,也就是密鑰也可以用作解密密鑰,這種方法在密碼學(xué)中叫做對(duì)稱加密算法,對(duì)稱加密算法使用起來簡單快捷,密鑰較短,且破譯困難,除了數(shù)據(jù)加密標(biāo)準(zhǔn)(DES)。非對(duì)稱加密算法:需要兩個(gè)密鑰:公開密鑰(publickey:簡稱公鑰)和私有密鑰(privatekey:簡稱私鑰)。公鑰與私鑰是一對(duì),如果用公鑰對(duì)數(shù)據(jù)進(jìn)行加密,只有用對(duì)應(yīng)的私鑰才能解密。、ECB加密解密函數(shù)importjavax.crypto.Cipher;importjavax.crypto.spec.SecretKeySpec;importmons.codec.binary.Base64;/****@authorcwy**/publicclassAESUtils{//加密publicstaticStringEncrypt(StringsSrc,StringsKey)throwsException{if(sKey==null){returnnull;}byte[]raw=sKey.getBytes("utf-8");SecretKeySpecskeySpec=newSecretKeySpec(raw,"AES");Ciphercipher=Cipher.getInstance("AES/ECB/PKCS5Padding");//"算法/模式/補(bǔ)碼方式"cipher.init(Cipher.ENCRYPT_MODE,skeySpec);cipher.init(Cipher.ENCRYPT_MODE,skeySpec);byte[]encrypted=cipher.doFinal(sSrc.getBytes("utf-8"));returnnewString(Base64.encodeBase64(encrypted));//此處使用BASE64做轉(zhuǎn)碼功能,同時(shí)能起到2次加密的作用。}//解密publicstaticStringDecrypt(StringsSrc,StringsKey)throwsException{try{//判斷Key是否正確if(sKey==null){returnnull;}byte[]raw=sKey.getBytes("utf-8");SecretKeySpecskeySpec=newSecretKeySpec(raw,"AES");Ciphercipher=Cipher.getInstance("AES/ECB/PKCS5Padding");cipher.init(Cipher.DECRYPT_MODE,skeySpec);byte[]encrypted1=Base64.decodeBase64(sSrc.getBytes());//先用base64解密try{byte[]original=cipher.doFinal(encrypted1);StringoriginalString=newString(original,"utf-8");returnoriginalString;}catch(Exceptione){System.out.println(e.toString());returnnull;}}catch(Exceptionex){System.out.println(ex.toString());returnnull;}}publicstaticvoidmain(String[]args)throwsException{/**此處使用AES-128-ECB加密模式,key需要為16位。*/StringcKey="1234567891012345";//需要加密的字串StringenString=AESUtils.Encrypt("HelloWorld",cKey);System.out.println("加密后的字串是:"+enString);}}口令認(rèn)證口令是接枚雙方預(yù)先約定的秘密數(shù)據(jù),它用來驗(yàn)證用戶知道什么??诹铗?yàn)證的安全性雖然不如其他幾種方法,但是口令驗(yàn)證簡單易行,因此口令驗(yàn)證是呂前應(yīng)用最為廣泛的身份認(rèn)證方法之一。在計(jì)算機(jī)系統(tǒng)中,操作系統(tǒng)、網(wǎng)絡(luò)、數(shù)據(jù)庫都采用了口令驗(yàn)證。在一些簡單的系統(tǒng)中,用戶的口令以口令表的形式存儲(chǔ)。當(dāng)用戶要訪問系統(tǒng)時(shí),系統(tǒng)要求用戶提供其口令,系統(tǒng)將用戶提供的口令與口令表中存儲(chǔ)的相應(yīng)用戶的口令進(jìn)行比較,若相等則確認(rèn)用戶身份有效,否則確認(rèn)用戶身份無效,擔(dān)絕訪問。但是,在上述口令驗(yàn)證機(jī)制中,存在下列一些問題:(1)攻擊者可能從口令表中獲取用戶口令。因?yàn)橛脩舻目诹钜悦魑男问酱鎯?chǔ)在系統(tǒng)中,系統(tǒng)管理員可以獲得所有口令,攻擊者也可利用系統(tǒng)的漏洞來獲得他人的口令。(2)攻擊者可能在傳輸線路上截獲用戶口令。因?yàn)橛脩舻目诹钤谟脩艚K端到系統(tǒng)的線路上以明文形式傳輸,所以攻擊者可在傳輸線路上截獲用戶口令。(3)用戶和系統(tǒng)的地位不平等。這里只有系統(tǒng)強(qiáng)制性地驗(yàn)證用戶的身份,而用戶無法驗(yàn)證系統(tǒng)的身份。代碼實(shí)現(xiàn)登錄功能publicpartialclassregister:Form{publicstaticstringstr_conn="server=CY-20190824RMES;InitialCatalog=fiber_yy;UserID=sa;pwd=beyond";SqlConnectionconn=newSqlConnection(str_conn);publicregister(){InitializeComponent();}privatevoidbutton1_Click(objectsender,EventArgse){stringsex="man";longphone_number;intaccount_number,password,sum=0;account_number=textBox1.Text.Length;password=textBox2.Text.Length;phone_number=long.Parse(textBox3.Text);if(account_number<=3||account_number>=16){label6.Text="賬號(hào)長度應(yīng)該在3~16字符之間";sum++;}else{label6.Text="校驗(yàn)成功";}if(password<=3||password>=16){label7.Text="密碼長度應(yīng)該在3~16字符之間";sum++;}else{label7.Text="校驗(yàn)成功";}if(radioButton1.Checked){sex="man";}elseif(radioButton2.Checked){sex="woman";}if(phone_number<10000000000||phone_number>99999999999){label9.Text="請(qǐng)輸入正確的手機(jī)號(hào)";sum++;}else{label9.Text="校驗(yàn)成功";}if(sum==0){label6.Text="√";label7.Text="√";label8.Text="√";label9.Text="√";try{stringsql=string.Format("selectcount(*)fromyy_userwhereusername='{0}'",textBox1.Text);SqlCommandcmd=newSqlCommand(sql,conn);conn.Open();inta=(int)cmd.ExecuteScalar();//返回一個(gè)值,看用戶是否存在1存在0不存在StringBuilderstrsql=newStringBuilder();//MessageBox.Show(a.ToString());if(a==1){MessageBox.Show("用戶名已存在");}else{MessageBox.Show("okk");//stringINSERT_sql=string.Format("INSERTINTOuser_yyVALUES('{0}','{1}')",textBox1.Text,textBox2.Text);stringINSERT_sql=string.Format("INSERTINTOyy_userVALUES('{0}','{1}','{2}','{3}')",textBox1.Text.Trim(),textBox2.Text.Trim(),sex,textBox3.Text.Trim());SqlCommandINSERT_cmd=newSqlCommand(INSERT_sql,conn);intcount=INSERT_cmd.ExecuteNonQuery();if(count>0){MessageBox.Show("注冊(cè)成功!");this.Close();newForm1().Show();}else{MessageBox.Show("GG");}}}catch(E

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論