




下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
數(shù)據(jù)加密解密與口令認證凱撒\t"/qq_51212018/article/details/_blank"加密與解密愷撒密碼的加密、解密方法還能夠通過同余的數(shù)學方法進行計算。首先將字母用數(shù)字代替,A=0,B=1,…,Z=25。此時偏移量為n的加密方法即為:En(x)=(x+n)mod26;解密就是:Dn(x)=(x-n)mod26;對稱加密:采用了對稱密碼編碼技術,它的特點是文件加密和解密使用相同的密鑰加密,也就是密鑰也可以用作解密密鑰,這種方法在密碼學中叫做對稱加密算法,對稱加密算法使用起來簡單快捷,密鑰較短,且破譯困難,除了數(shù)據(jù)加密標準(DES)。非對稱加密算法:需要兩個密鑰:公開密鑰(publickey:簡稱公鑰)和私有密鑰(privatekey:簡稱私鑰)。公鑰與私鑰是一對,如果用公鑰對數(shù)據(jù)進行加密,只有用對應的私鑰才能解密。、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");//"算法/模式/補碼方式"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做轉碼功能,同時能起到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);}}口令認證口令是接枚雙方預先約定的秘密數(shù)據(jù),它用來驗證用戶知道什么??诹铗炞C的安全性雖然不如其他幾種方法,但是口令驗證簡單易行,因此口令驗證是呂前應用最為廣泛的身份認證方法之一。在計算機系統(tǒng)中,操作系統(tǒng)、網絡、數(shù)據(jù)庫都采用了口令驗證。在一些簡單的系統(tǒng)中,用戶的口令以口令表的形式存儲。當用戶要訪問系統(tǒng)時,系統(tǒng)要求用戶提供其口令,系統(tǒng)將用戶提供的口令與口令表中存儲的相應用戶的口令進行比較,若相等則確認用戶身份有效,否則確認用戶身份無效,擔絕訪問。但是,在上述口令驗證機制中,存在下列一些問題:(1)攻擊者可能從口令表中獲取用戶口令。因為用戶的口令以明文形式存儲在系統(tǒng)中,系統(tǒng)管理員可以獲得所有口令,攻擊者也可利用系統(tǒng)的漏洞來獲得他人的口令。(2)攻擊者可能在傳輸線路上截獲用戶口令。因為用戶的口令在用戶終端到系統(tǒng)的線路上以明文形式傳輸,所以攻擊者可在傳輸線路上截獲用戶口令。(3)用戶和系統(tǒng)的地位不平等。這里只有系統(tǒng)強制性地驗證用戶的身份,而用戶無法驗證系統(tǒng)的身份。代碼實現(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="賬號長度應該在3~16字符之間";sum++;}else{label6.Text="校驗成功";}if(password<=3||password>=16){label7.Text="密碼長度應該在3~16字符之間";sum++;}else{label7.Text="校驗成功";}if(radioButton1.Checked){sex="man";}elseif(radioButton2.Checked){sex="woman";}if(phone_number<10000000000||phone_number>99999999999){label9.Text="請輸入正確的手機號";sum++;}else{label9.Text="校驗成功";}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();//返回一個值,看用戶是否存在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("注冊成功!");this.Close();newForm1().Show();}else{MessageBox.Show("GG");}}}catch(E
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- QC-T 364-1999 滾花圓柱銷QC-T 364-1999 滾花圓柱銷
- 2025年中考歷史專項練習:中外思想變革史
- 2025年高中《秋季軍訓》工作實施方案 (3份)
- 膽石癥介紹課件
- 2026高考生物一輪復習講義:微生物的培養(yǎng)技術與應用(含答案)
- 2026年高考物理一輪復習:運動的描述(試卷+答案解析)
- 2026年高考生物一輪復習:人教版選擇性必修1《穩(wěn)態(tài)與調節(jié)》考點知識提綱默寫練習題(含答案)
- 2026高考物理一輪總復習(基礎版)牛頓第二定律的基本應用(含答案)
- 2025深圳中考英語閱讀匹配專項復習練習題【含答案解析】
- 2025年蘇教版七年級生物下冊期末專項培優(yōu)-植物的呼吸作用綜合題(含解析)
- 2024年廣州越秀區(qū)招聘社區(qū)專職工作人員真題
- 北方民族大學《高等數(shù)學Ⅱ》2025-2026學年期末試卷(A卷)
- 支付為民活動方案
- 膝關節(jié)滑膜炎護理查房
- 2025至2030中國聚對苯二甲酸丙二醇酯(PTT)行業(yè)市場現(xiàn)狀分析及競爭格局與投資發(fā)展報告
- 服裝設計與工藝專業(yè)教學標準(高等職業(yè)教育??疲?025修訂
- 尿毒癥護理疑難病例討論
- 回腸造口還納護理查房
- 2025年魚菜共生項目可行性研究報告
- 《新媒體廣告設計》教學課件 第1章 走近新媒體廣告
- 廣告標識牌、宣傳品、物料設計、制作方案投標文件(技術方案)
評論
0/150
提交評論