PHP常見的加密技術

liangnianbing發表於2018-12-30

PHP中幾種常見的加密形式

  • md5()加密演算法
  • crypt()加密演算法
  • sha1()加密演算法
  • url()加密演算法
  • base64()加密演算法

md5加密

  • md5是單向的,只能加密,不能解密
  • 輸入任意長度的值,輸出的都是128位資訊值
  • 不同的輸入對應的一定是不同的輸出,保證唯一性
  • md5還是會出現碰撞現象
  • 關於md5的詳細介紹,包括優缺點,見:MD5及加密演算法優劣

crypt加密

  • crypt也是單向的,只能加密,不能解密
  • crypt在不同系統上的加密演算法是不一樣的,參見:PHP手冊-crypt
  • 需要兩個引數,兩個引數都是必選的,在PHP5之後:
    • 第一個引數是你需要加密的字串
    • 第二個引數是干擾串(或者叫做金鑰),最多兩位字元,會加在密文的開頭兩位
  • 從 PHP 5.3.0 起,PHP 包含了它自己的實現,並將在系統缺乏相應演算法支援的時候使用它自己的實現。

sha1加密

  • sha1也是單向的,只能加密,不能解密

URL編碼加密

  • 兩個函式:urlencode()和urldecode(),這個加密是雙向的,能加密,頁能解密
  • 加密規則:給定字串中除了:字母,數字,下劃線,中劃線,點之外的其他所有字元都會被加密為百分號後跟兩位的16進位制數,空格被編碼為加號
  • 與上面兩個稍微有點不同的兩個函式:rawurlencode()和rawurldecode()
    • 區別就是urlencode是把空格加密成加號(+),而rawurlencode是把空格加密成%20
    • 就這一個區別,推薦使用rawurlencode函式對,統一標準

base64加密

  • bsae64不是真正意義上的加密,而是對資料進行編碼和解碼
  • 是雙向的,可以編碼,也可以解碼
  • 兩個函式:base64_encode和base64_decode
  • 主要應用在圖片的編碼和解碼上

總結:

資訊加密技術分類

彩虹表百度百科

  • 單項雜湊加密
    • 是指:通過對不同輸入長度的資訊進行雜湊計算,得到固定長度的輸出,這個雜湊計算的過程是單向的,即不能對固定長度的輸出進行計算從而獲得輸入資訊
  • 對稱雜湊加密
    • 是指:加密和解密使用的金鑰是同一個金鑰或者可以互相推算
    • 優點:演算法簡單,效率高
    • 缺點:加解密使用的同一個金鑰,如果金鑰被盜,丟失,洩露,密文實際上就跟明文無差別
  • 非對稱雜湊加密
    • 是指:加解密使用的金鑰不是同一個金鑰,其中一個對外公開,被稱作公鑰,另一個只有所有者知道
    • 用公鑰加密的密文,只能使用私鑰才能解開
    • 反之,用私鑰加密的密文,也只能用公鑰才能解開
    • 實際的意思就是說:加密的時候是一個金鑰,解密是另一個金鑰,其實並不區分什麼是公私金鑰
    • 應用領域:一般在資訊保安傳輸和數字簽名等

沒有什麼加密方式是能一勞永逸的,破解只是時間問題

相關文章