




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、實(shí) 驗(yàn) 報(bào) 告課程名稱 數(shù)據(jù)庫(kù)安全 內(nèi) 容 數(shù)據(jù)庫(kù)加密 指導(dǎo)教師 岳 清 起止日期 2016.10.10-11.1 提交日期 2016.11.8 學(xué) 院 計(jì)算機(jī)學(xué)院 系別專業(yè) 軟件工程 學(xué)生姓名 肖慶都 班級(jí)/學(xué)號(hào) 軟工1401/2014011352成 績(jī) _一、 實(shí)驗(yàn)?zāi)康牧私鈹?shù)據(jù)庫(kù)加密的重要性,掌握MD5加密方法。二、 實(shí)驗(yàn)內(nèi)容在dbsecurity數(shù)據(jù)庫(kù)中新建一表user,包含兩個(gè)字段username,password。將password字段的數(shù)據(jù)用MD5算法加密。代碼如下:主程序代碼:package test;import javax.swing.*;import java.awt.*;
2、import java.awt.event.*;import java.sql.*;import java.security.MessageDigest;public class Test extends JFrame/* * */private static final long serialVersionUID = 1L;public Test()setLayout(new GridLayout(3,1);JPanel p1=new JPanel();JPanel p2=new JPanel();JPanel p3=new JPanel();JTextField jtf=new JText
3、Field(12);JPasswordField jpf=new JPasswordField(12);JLabel jl1=new JLabel("用戶名");JLabel jl2=new JLabel("密碼");JButton jbt_login=new JButton("登陸");JButton jbt_cancel=new JButton("取消");jbt_login.addActionListener(new ActionListener()public void actionPerformed(Ac
4、tionEvent e)Connect con=new Connect();String userName=jtf.getText().trim();char pwd=jpf.getPassword();String password=new String(pwd);Md5 md5=new Md5();String md5pwd=md5.toMD5(password);tryResultSet rs;String sql="select * from t_user"rs=con.executeQuery(sql);while(rs.next()if(userName.equ
5、als(rs.getString("t_name")if(md5.toMD5(rs.getString("t_password").substring(32).equals(md5pwd)JOptionPane.showMessageDialog(null,"登陸成功","OK",JOptionPane.INFORMATION_MESSAGE);System.out.println(rs.getString("t_password");System.out.println(md5pwd);Sys
6、tem.out.println(md5.toMD5(rs.getString("t_password").substring(32,64);break;elseJOptionPane.showMessageDialog(null,"登陸失敗","fault",JOptionPane.ERROR_MESSAGE);break;con.close();catch(Exception e1)System.err.println("錯(cuò)誤為:"+e1.getMessage(););jbt_cancel.addActionLi
7、stener(new ActionListener()public void actionPerformed(ActionEvent e);/第一塊面板p1.add(jl1);p1.add(jtf);/第二塊面板p2.add(jl2);p2.add(jpf);/第三塊面板p3.add(jbt_login);p3.add(jbt_cancel);p3.setLayout(new FlowLayout();add(p1);add(p2);add(p3);public void toMD5(String plainText)try/生成實(shí)現(xiàn)指定摘要算法的MessageDigest對(duì)象。Message
8、Digest md=MessageDigest.getInstance("MD5");/使用指定的字節(jié)數(shù)組更新摘要md.update(plainText.getBytes();/通過(guò)執(zhí)行諸如填充之類的最終操作完成哈希計(jì)算。byte b =md.digest();/生成具體的md5密碼到buf數(shù)組int i;StringBuffer buf=new StringBuffer("");for(int offset=0;offset<b.length;offset+)i=boffset;if(i<0)i+=256;if(i<16)buf.ap
9、pend("0");buf.append(Integer.toHexString(i);System.out.println("32位:"+buf.toString();System.out.println("16位:"+buf.toString().substring(8,24);catch(Exception e)e.printStackTrace();public static void main(String args)Test frame=new Test();frame.setTitle("登陸");f
10、rame.setSize(300,200);frame.setLocationRelativeTo(null);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setVisible(true);連接數(shù)據(jù)庫(kù)的代碼:package test;import java.sql.*;public class Connect Connection con;Statement sta;String driver;String db;public Connect()driver="com.microsoft.sqlserver.j
11、dbc.SQLServerDriver"db="jdbc:sqlserver:/localhost:1433;DatabaseName=login"String username="xiaoqingdu"String pwd="woaini"tryClass.forName(driver);con=DriverManager.getConnection(db,username,pwd);sta=con.createStatement();catch(java.lang.ClassNotFoundException e)Sys
12、tem.err.println("a:+"+e.getMessage();catch (SQLException e1) System.err.println("b:" + e1.getMessage();public ResultSet executeQuery(String sql)ResultSet rs=null;tryrs=sta.executeQuery(sql);catch (SQLException e) System.err.println("d:" + e.getMessage();return rs;public
13、 void close() try sta.close();con.close(); / Finalcatch (SQLException e) System.err.println("e:" + e.getMessage();Md5算法package test;import java.security.*;public class Md5 StringBuffer buf=new StringBuffer("");public Md5()public String toMD5(String plainText)try/生成實(shí)現(xiàn)指定摘要算法的Messag
14、eDigest對(duì)象。MessageDigest md=MessageDigest.getInstance("MD5");/使用指定的字節(jié)數(shù)組更新摘要md.update(plainText.getBytes();/通過(guò)執(zhí)行諸如填充之類的最終操作完成哈希計(jì)算。byte b =md.digest();/生成具體的md5密碼到buf數(shù)組int i;for(int offset=0;offset<b.length;offset+)i=boffset;if(i<0)i+=256;if(i<16)buf.append("0");buf.append(
15、Integer.toHexString(i);catch(Exception e)e.printStackTrace();return buf.toString();測(cè)試結(jié)果:在數(shù)據(jù)庫(kù)中建立的t_user表。t_name=xiao,t_password=xiao。界面顯示:測(cè)試結(jié)果:錯(cuò)誤結(jié)果:三、 實(shí)驗(yàn)總結(jié)MD5(單向散列算法)的全稱是Message-Digest Algorithm 5(信息-摘要算法),經(jīng)MD2、MD3和MD4發(fā)展而來(lái)。MD5算法的使用不需要支付任何版權(quán)費(fèi)用。 MD5功能: 輸入任意長(zhǎng)度的信息,經(jīng)過(guò)處理,輸出為128位的信息(數(shù)字指紋); 不同的輸入得到的不同的結(jié)果(唯一性
16、); 根據(jù)128位的輸出結(jié)果不可能反推出輸入的信息(不可逆); MD5用途: 1、防止被篡改:1)比如發(fā)送一個(gè)電子文檔,發(fā)送前,我先得到MD5的輸出結(jié)果a。然后在對(duì)方收到電子文檔后,對(duì)方也得到一個(gè)MD5的輸出結(jié)果b。如果a與b一樣就代表中途未被篡改。2)比如我提供文件下載,為了防止不法分子在安裝程序中添加木馬,我可以在網(wǎng)站上公布由安裝文件得到的MD5輸出結(jié)果。3)SVN在檢測(cè)文件是否在CheckOut后被修改過(guò),也是用到了MD5.2、防止直接看到明文: 現(xiàn)在很多網(wǎng)站在數(shù)據(jù)庫(kù)存儲(chǔ)用戶的密碼的時(shí)候都是存儲(chǔ)用戶密碼的MD5值。這樣就算不法分子得到數(shù)據(jù)庫(kù)的用戶密碼的MD5值,也無(wú)法知道用戶的密碼(其實(shí)這樣是不安全的,后面我會(huì)提到)。(比如在UNIX系統(tǒng)中用戶的密碼就是以MD5(或其它類似的算法)經(jīng)加密后存儲(chǔ)在文件系統(tǒng)中。當(dāng)用戶登錄的時(shí)候,系統(tǒng)把用戶輸入的密碼計(jì)算成MD5值,然后再去和保存在文件系統(tǒng)中的MD5值進(jìn)行比較,進(jìn)而確定輸入的密碼是否正確。通過(guò)這樣的步驟,系統(tǒng)在并不知道用戶密碼的明碼的情況下就可以確定用戶登錄系統(tǒng)的合法性。這不但可以避免用戶的密
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 銷售講師培訓(xùn)課件內(nèi)容
- 2024年咸寧通山縣事業(yè)單位招聘筆試真題
- 2025至2030殘余氣體分析儀(RGA)行業(yè)市場(chǎng)深度研究與戰(zhàn)略咨詢分析報(bào)告
- 高考卷上海數(shù)學(xué)試卷
- 姑蘇區(qū)中考一模數(shù)學(xué)試卷
- 阜寧初一下數(shù)學(xué)試卷
- 高一同學(xué)的數(shù)學(xué)試卷
- 獨(dú)秀初中初二數(shù)學(xué)試卷
- 汾陽(yáng)五年級(jí)數(shù)學(xué)試卷
- 甘谷中考數(shù)學(xué)試卷
- 中國(guó)絕經(jīng)管理與絕經(jīng)激素治療指南(2023版)解讀
- 汽車美容店工作計(jì)劃書
- 華師專業(yè)英語(yǔ)詞匯表
- 企業(yè)5S標(biāo)準(zhǔn)化管理
- 社區(qū)工作者招聘考試歷年真題庫(kù)含備考資料
- 綠化養(yǎng)護(hù)工作日記錄表
- 反詐禁毒反邪教知識(shí)講座
- 酒店升級(jí)改造方案
- 高一新生分班考試英語(yǔ)試卷(含答案)
- 《制造業(yè)的成本》課件
- 風(fēng)光儲(chǔ)儲(chǔ)能項(xiàng)目PCS艙、電池艙吊裝方案
評(píng)論
0/150
提交評(píng)論