• 
    

    
    

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

      ?

      網(wǎng)站安全與PHP加密技術的應用研究

      2016-05-14 20:32何志明
      知音勵志·社科版 2016年6期
      關鍵詞:數(shù)據(jù)加密

      何志明

      摘 要 隨著互聯(lián)網(wǎng)技術的發(fā)展,越來越多的PHP語言開發(fā)網(wǎng)站不斷涌現(xiàn),特別是網(wǎng)絡上的大量交易和大量數(shù)據(jù)傳輸,PHP網(wǎng)站所暴漏出來的安全性問題也越來越突出,數(shù)據(jù)加密技術就顯越來越重要了。

      【關鍵詞】網(wǎng)站安全;數(shù)據(jù)加密;PHP技術

      1 PHP加密的基本原理

      PHP是英文超文本處理語言Hypertext Preprocessor的縮寫,是對文件或數(shù)據(jù)按某種加密算法進行計算處理,使其成為不可讀的一段數(shù)字代碼,通過這樣的途徑來達到保護數(shù)據(jù)不被非法竊取和閱讀的目的。PHP 是一種 HTML 內(nèi)嵌式的語言,是一種在服務器端執(zhí)行的嵌入HTML文檔的腳本語言,現(xiàn)已被廣泛地運用。

      2 PHP的常用函數(shù)及其應用

      2.1 不可逆的加密函數(shù)為:md5()、crypt()

      md5() 用來計算 MD5 哈稀。語法為:string md5(string str);

      crypt() 將字符串用 UNIX 的標準加密 DES 模塊加密。這是單向的加密函數(shù),無法解密。欲比對字符串,將已加密的字符串的頭二個字符放在 salt 的參數(shù)中,再比對加密后的字符串。語法為:string crypt(string str, string [salt])。

      2.2 可逆轉的加密為:base64_encode()、urlencode() 相對應的解密函數(shù):base64_decode() 、urldecode()

      base64_encode() 將字符串以 MIME BASE64 編碼。此編碼方式可以讓中文字或者圖片也能在網(wǎng)絡上順利傳輸。語法為string base64_encode(string data); 它的解密函數(shù)為:string base64_decode(string encoded_data); 將復回原樣。

      urlencode() 將字符串以 URL 編碼。例如空格就會變成加號。語法為:string urlencode(string str);

      它的解密函數(shù)為:string urldecode(string str); 將復回原樣。

      2.3 加密/解密字符串函數(shù)應用舉例

      /**

      * 可逆的字符串加密函數(shù)

      * @param int $txtStream 待加密的字符串內(nèi)容

      * @param int $password 加密密碼

      * @return string 加密后的字符串

      */

      public static function enCrypt($txtStream,$password){

      //密鎖串,不能出現(xiàn)重復字符,內(nèi)有A-Z,a-z,0-9,/,=,+,_,

      $lockstream = 'st=lDEFABCNOPyzghi_jQRST-UwxkVWXYZabcdef+IJK6/7nopqr89LMmGH012345uv';

      //隨機找一個數(shù)字,并從密鎖串中找到一個密鎖值

      $lockLen = strlen($lockstream);

      $lockCount = rand(0,$lockLen-1);

      $randomLock = $lockstream[$lockCount];

      //結合隨機密鎖值生成MD5后的密碼

      $password = md5($password.$randomLock);

      //開始對字符串加密

      $txtStream = base64_encode($txtStream);

      $tmpStream = '';

      $i=0;$j=0;$k = 0;

      for ($i=0; $i

      $k = ($k == strlen($password)) ? 0 : $k;

      $j = (strpos($lockstream,$txtStream[$i])+$lockCount+ord($password[$k]))%($lockLen);

      $tmpStream .= $lockstream[$j];

      $k++;

      }

      /**

      3 PHP加密擴展庫及應用

      3.1 mhash擴展庫

      安裝Mhash擴展庫:首先把PHP目錄下的libmhash.dll文件copy到系統(tǒng)目錄下,然后在php.ini文件中找到”;extension=php_mhash.dll”將前面的分號去掉,最后重啟服務器。

      Mhash擴展庫常量:Mhash擴展庫支持MD5,SHA1,CRC32等多種散列算法,可以使用mhash_count()和mhash_get_hash_name()函數(shù)輸出支持的算法名稱。

      Mhash擴展庫應用:獲取文件的全部內(nèi)容:file_get_contents(文件名)。

      3.2 Mcrypt()擴展庫

      安裝Mcrypt()擴展庫:首先把PHP目錄下的libmcrypt.dll文件copy到系統(tǒng)目錄下,然后在php.ini文件中找到”;extension=php_mcrypt.dll”將前面的分號去掉,最后重啟服務器。

      Mcrypt()擴展庫常量:支持20多種加密算法和8種加密模式,可以通過函數(shù)mcrypt_list_algorithms()和mcrypt_list_modes()來查看。

      Mcrypt應用:初始化向量:mcrypt_create_iv(該向量的大小,向量的源(MCRYPT_RAND:取系統(tǒng)的隨機數(shù)))

      獲取到初始化向量的大?。簃crypt_create_iv_size(加密算法;加密模式);

      加密:mcrypt_encrypt(加密算法,密鑰,需要加密的數(shù)據(jù),算法模式,向量);

      解密:mcrypt_decrypt(加密算法,密鑰,需要解密的數(shù)據(jù),算法模式,向量)。

      4 結語

      PHP加密函數(shù)或加密庫只是一種簡單的阻止數(shù)據(jù)在傳輸過程中泄密方式, PHP不能阻止數(shù)據(jù)在傳輸過程中泄密,Mcrypt和Mhash擴展庫則提供了更全面加密與解密方法。要想構建一個更加安全性的網(wǎng)站,需要將服務器與客戶端間數(shù)據(jù)傳輸?shù)陌踩跃C合考慮,同時配合Apache-SSL等其它安全服務器使用,以便組建一個性能更加安全的網(wǎng)站系統(tǒng)。

      作者單位

      重慶三峽職業(yè)學院 重慶市 404155

      猜你喜歡
      數(shù)據(jù)加密
      大數(shù)據(jù)時代個人隱私的保護
      AES和RSA混合加密技術在網(wǎng)絡數(shù)據(jù)傳輸中的應用
      云數(shù)據(jù)存儲安全關鍵技術研究
      企業(yè)門戶網(wǎng)站安全訪問解決方案研究
      一種基于虛擬專用網(wǎng)及數(shù)據(jù)加密技術的企業(yè)財務會計記錄直報系統(tǒng)的實現(xiàn)方案
      智能家居系統(tǒng)安全性方案的設計
      昂仁县| 河东区| 怀柔区| 安龙县| 蒲江县| 长治市| 宾川县| 长岛县| 中山市| 马公市| 新沂市| 武宣县| 类乌齐县| 怀来县| 兴城市| 门头沟区| 湖南省| 美姑县| 邵阳市| 永修县| 西畴县| 江都市| 共和县| 高州市| 佳木斯市| 班戈县| 仙桃市| 河西区| 北海市| 平谷区| 灌阳县| 阿巴嘎旗| 大方县| 墨江| 芦溪县| 安陆市| 若尔盖县| 大石桥市| 北流市| 九龙城区| 迁西县|