• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      Android教學(xué)中信息防盜模塊中的MD5加密應(yīng)用分析

      2017-03-25 02:33:26王紅偉王紅紀(jì)
      科技資訊 2017年3期
      關(guān)鍵詞:手機(jī)app加密

      王紅偉 王紅紀(jì)

      摘 要:目前,大多數(shù)的信息管理系統(tǒng)在設(shè)計(jì)實(shí)現(xiàn)過(guò)程中,都設(shè)計(jì)有用戶身份驗(yàn)證的登錄界面?,F(xiàn)在用的較多的在線QQ聊天軟件、手機(jī)微信聊天軟件、各大銀行銀聯(lián)取款軟件等,程序設(shè)計(jì)模塊的第一個(gè)模塊就是身份驗(yàn)證模塊,此模塊對(duì)于信息管理系統(tǒng)中數(shù)據(jù)的私密性起到關(guān)鍵性的保護(hù)作用。

      關(guān)鍵詞:手機(jī)app MD5算法 加密

      中圖分類號(hào):G712 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-3791(2017)01(c)-0182-02

      高等職業(yè)技術(shù)學(xué)校的專業(yè)開(kāi)設(shè)與課程體系的構(gòu)建與現(xiàn)代社會(huì)發(fā)展需求密切相關(guān)。社會(huì)經(jīng)濟(jì)大力的發(fā)展的同時(shí),科學(xué)技術(shù)也日新月異。智能手機(jī)也逐步走入每個(gè)家庭。基于智能手機(jī)操作系統(tǒng)的android程序開(kāi)發(fā)也成為信息類應(yīng)用技術(shù)開(kāi)發(fā)專業(yè)開(kāi)設(shè)的必備課程。在Android課程的教學(xué)設(shè)計(jì)、教學(xué)實(shí)現(xiàn)過(guò)程中,各種手機(jī)app作為教學(xué)項(xiàng)目走入學(xué)生課堂。像大多數(shù)以往我們所用的各種信息管理系統(tǒng)一樣,手機(jī)APP中的信息管理系統(tǒng)在運(yùn)行開(kāi)始階段,也加入了用戶身份驗(yàn)證模塊,信息的加密方式有很多,該文中從加密算法的原理、應(yīng)用等方面分析了Andorid應(yīng)用程序中MD5加密算法。

      1 MD5加密算法

      加密算法類型有多種,MD5算法屬于散列算法,安全性高。它的過(guò)程是不可逆的過(guò)程。用戶在界面輸入的兩個(gè)不同的密碼值,通過(guò)MD5算法之后,不會(huì)得到相同的輸出值。反之,根據(jù)輸出值,也不能得到原始的數(shù)據(jù)。所以,要解密MD5是沒(méi)有便捷的算法可用的,惟一的能用的方法是窮舉法,即把可能出現(xiàn)的密碼值用MD5算法散列之后,把得到的值與原始數(shù)據(jù)形成一對(duì)一的映射表,通過(guò)比對(duì)從映射表中找出對(duì)應(yīng)的原始密碼。

      2 MD5的安全性

      MD5加密算法的輸出為128位。由于解密過(guò)程保用窮舉法,在進(jìn)行大量數(shù)據(jù)的比對(duì)過(guò)程中,數(shù)據(jù)驗(yàn)證計(jì)算量超大,因此這種方法費(fèi)時(shí)費(fèi)力,從而加大的密碼的安全性。出于對(duì)MD5加密算法安全性的考慮,另外MD5加密算法可以免費(fèi)使用,因此加密方法被廣泛使用。對(duì)于職業(yè)院校中針對(duì)計(jì)算機(jī)應(yīng)用專業(yè)課程開(kāi)發(fā)的信息管理系統(tǒng)來(lái)說(shuō),MD5算法可以用在用戶注冊(cè)口令時(shí)的加密設(shè)計(jì)。

      3 MD5加密原理

      MD5加密算法的實(shí)現(xiàn)過(guò)程從開(kāi)始到輸出結(jié)果分五步驟完成。

      第一步先進(jìn)行補(bǔ)位操作:如果輸入的數(shù)據(jù)位數(shù)不夠的話,要先進(jìn)行補(bǔ)位操作。MD5算法要求輸入的數(shù)據(jù)位長(zhǎng)度對(duì)512求余的結(jié)果是448。

      第二步是補(bǔ)數(shù)據(jù)長(zhǎng)度操作:輸入數(shù)據(jù)用一個(gè)64位的數(shù)字表示其原始長(zhǎng)度。再把這個(gè)數(shù)據(jù)用兩個(gè)32位數(shù)表示,得到的數(shù)據(jù)將會(huì)是長(zhǎng)度為512位的倍數(shù)。這是為了解決后續(xù)數(shù)據(jù)處理中對(duì)信息長(zhǎng)度的要求。

      第三步是初始化MD5參數(shù)操作:MD5在初始化時(shí)需要4個(gè)十六進(jìn)制整數(shù)(X1,X2,X3,X4,)作為參數(shù),初始化值是:X1=0X01234567,X2=0X89abcdef,X3=0Xfedcba98,X4=0X76543210。

      第四步是進(jìn)入MD5算法的循環(huán)運(yùn)算過(guò)程:在這個(gè)處理過(guò)程中用到四個(gè)處理函數(shù),它們分別是:

      F(x1,x2,x3)=( x1& x2)|((~ x1)& x3)

      G(x1,x2,x3)=( x1&z)|( x2&(~ x3))

      H(x1,x2,x3)= x1^ x2^ x3

      I(x1,x2,x3)= x2^( x1 (~x3))

      其中,^是異或,&是與,|是或,~是反符號(hào)。

      首先把MD5初始化時(shí)的4個(gè)參數(shù)值保存到(X1、X2、X3、X4)依次保存到四個(gè)變量(x1、x2、x3、x4)中。主循環(huán)有四次,每次循環(huán)操作過(guò)程中,都要對(duì)x1、x2、x3、x4中的其中3個(gè)作一次線性函數(shù)運(yùn)算,然后將所得結(jié)果加上第四個(gè)變量,再將所得結(jié)果向右移一個(gè)不定的數(shù),并加上x1、x2、x3、x4中的一個(gè)。最后計(jì)算的結(jié)果取代a、b、c或d中之一。如果x1、x2和x3的對(duì)應(yīng)位是獨(dú)立和均勻的,那么結(jié)果的每一位也是獨(dú)立和均勻的。F是一個(gè)逐位運(yùn)算的函數(shù):如果x1,那么x2,否則x3。函數(shù)H是逐位奇偶操作符。

      第五步是MD5算法中的分組數(shù)據(jù)運(yùn)算過(guò)程:把MD5初始化時(shí)的四個(gè)參數(shù)X1、X2、X3、X4、分別加上x1、x2、x3、x4后的數(shù)據(jù)繼續(xù)運(yùn)行算法,最后的輸出是由DCBA組成128位結(jié)果(其中A是低位,D為高位)。

      4 MD5算法具體實(shí)現(xiàn)

      手機(jī)APP程序設(shè)計(jì)的身份驗(yàn)證功能中,在登錄按鈕的setOnClickListener方法中進(jìn)行密碼驗(yàn)證中設(shè)計(jì)代碼如下:(登錄按鈕的名字為loginbtn)

      String user,pass;

      定義變量用于獲取密碼框(此組件名字是password)中用戶輸入的密碼值:pass=password.getText().toString();

      用MD5算法對(duì)密碼進(jìn)行加密:String passmd5=MD5(pass);

      加密后密碼與存儲(chǔ)密碼進(jìn)行比較(oldpass是存儲(chǔ)信息中密碼):if(passmd5.equals(oldpass)){//此處是密碼對(duì)比成功后的代碼設(shè)置}

      設(shè)計(jì)MD3()方法,此方法的參數(shù)為字符串變量str, 方法返回的值為字符串newstr:

      MessageDigest myDigest=MessageDigest.getInstance(“MD5”);

      byte [] myResult= myDigest.digest(password.getBytes());

      StringBuilder myString=new StringBuilder();

      for( byte myB: myResult){

      int num=b&0xff;

      String s=Integer.toHexString(num);

      if (s.length()==1){ myString .append(“0”+s);}

      else { myString .append(+s);}

      }//最后的myString就是經(jīng)過(guò)MD5算法后得到的結(jié)果數(shù)據(jù)。

      5 加密算法的使用建議

      在目前所開(kāi)發(fā)的各種信息系統(tǒng)中,對(duì)Md5加密方法的運(yùn)用主要是在應(yīng)用程序的登錄界面中,對(duì)用戶輸入的密碼文本進(jìn)行加密時(shí)直接調(diào)用第四步中定義過(guò)的加密函數(shù)進(jìn)行數(shù)據(jù)處理可以得到加密后的密碼。但是如果將加密后的數(shù)據(jù)直接保存在數(shù)據(jù)庫(kù)時(shí),破解者還是可以通過(guò)MD5在線查詢或者暴力破解可以得到密碼。所以我們可以在加密的基礎(chǔ)上,對(duì)密文進(jìn)行改變,在密文中截取一段數(shù)據(jù)并丟棄,然后使用隨機(jī)函數(shù)填充被丟棄的數(shù)據(jù),且整個(gè)過(guò)程不改變MD5加密后的位數(shù)。

      從軟件安全角度來(lái)說(shuō),程序使用過(guò)程的加密設(shè)置是極其重要的。從程序開(kāi)發(fā)與設(shè)計(jì)角度來(lái)說(shuō),解密過(guò)程也是不可避免的。任何程序的加密設(shè)計(jì)方案隨著時(shí)間的發(fā)展,最終都會(huì)出現(xiàn)相應(yīng)的解密方案來(lái)破解。程序設(shè)計(jì)中的加密算法多種多樣,該文中MD5加密算法只是在某種程度上保證了程序使用過(guò)程中數(shù)據(jù)的相對(duì)安全性。

      參考文獻(xiàn)

      [1] hualang.Android雜談-用MD5加密算法加密密碼[EB/OL].2011.8.http://www.iteye.com/topic/1113569.

      [2] 牛耳教育.分析MD5加密算法原理[EB/OL].2010.7.http://blog.sina.com.cn/csneweredu.

      [3] Md5加密算法的原理及應(yīng)用[EB/OL].2011.9.http://libin52008.blog.163.com/blog/static/105327187201186981459/淡然.

      猜你喜歡
      手機(jī)app加密
      一種基于熵的混沌加密小波變換水印算法
      加密與解密
      “指尖上的黨?!痹诖髮W(xué)生黨建工作中的應(yīng)用
      “O2O”模式的月子餐市場(chǎng)前景明朗
      互聯(lián)網(wǎng)+背景下的手機(jī)APP安全性測(cè)試研究
      一種基于LWE的同態(tài)加密方案
      智能手機(jī)APP支持下的大學(xué)英語(yǔ)聽(tīng)力教學(xué)
      考試周刊(2016年84期)2016-11-11 23:15:06
      基于手機(jī)藍(lán)牙的無(wú)線智能控制系統(tǒng)的設(shè)計(jì)
      網(wǎng)絡(luò)虛擬仿真實(shí)驗(yàn)中心建設(shè)研究與實(shí)踐
      認(rèn)證加密的研究進(jìn)展
      海盐县| 留坝县| 麻栗坡县| 呈贡县| 亳州市| 眉山市| 兴安盟| 合阳县| 仁化县| 南雄市| 称多县| 罗定市| 泉州市| 宁海县| 探索| 平顺县| 靖远县| 韶关市| 镇康县| 奎屯市| 晴隆县| 丰县| 栾城县| 全州县| 滦平县| 信宜市| 留坝县| 江山市| 太仆寺旗| 苍溪县| 海丰县| 砚山县| 新疆| 梓潼县| 禄丰县| 襄樊市| 呼图壁县| 彝良县| 寿宁县| 顺平县| 宜宾市|