下載本文檔
版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 贛南醫(yī)學(xué)院《英語閱讀與思辨》2023-2024學(xué)年第一學(xué)期期末試卷
- 七年級(jí)語文上冊(cè)第二單元6散步教案新人教版
- 七年級(jí)道德與法治上冊(cè)第四單元生命的思考第八課探問生命第1課時(shí)誤區(qū)警示新人教版
- 三年級(jí)數(shù)學(xué)上冊(cè)7長方形和正方形第3課時(shí)周長導(dǎo)學(xué)案新人教版
- 三年級(jí)數(shù)學(xué)上冊(cè)第2單元兩三位數(shù)乘一位數(shù)2.8解決問題課時(shí)練冀教版
- 慢性胃炎培訓(xùn)課件
- 《先芥蒂與麻醉》課件
- 人教版八年級(jí)物理下冊(cè)全冊(cè)教案
- 函數(shù)的圖象課件
- 涂料調(diào)色完整版本
- 《電化學(xué)儲(chǔ)能系統(tǒng)艙大件運(yùn)輸特殊要求》
- 2025年采購部工作計(jì)劃
- 期末檢測(cè)卷(一)(試卷)-2024-2025學(xué)年外研版(三起)英語六年級(jí)上冊(cè)(含答案含聽力原文無音頻)
- 《防范于心反詐于行》中小學(xué)防范電信網(wǎng)絡(luò)詐騙知識(shí)宣傳課件
- 2023-2024學(xué)年北京市通州區(qū)九年級(jí)(上)期末語文試卷
- 2023-2024學(xué)年廣東省深圳市龍崗區(qū)八年級(jí)(上)期末英語試卷
- DB23-T 3768-2024北方種鵝節(jié)水生態(tài)旱養(yǎng)管理技術(shù)規(guī)程
- 勘察工作質(zhì)量及保證措施
- 事業(yè)單位招聘《綜合基礎(chǔ)知識(shí)》考試試題及答案
- 2024年電工(高級(jí)技師)考前必刷必練題庫500題(含真題、必會(huì)題)
- 墊江縣中醫(yī)院2018年11月份臨床技能中心教學(xué)設(shè)備招標(biāo)項(xiàng)目招標(biāo)文件
評(píng)論
0/150
提交評(píng)論