回覆列表
  • 1 # 使用者1136613581865

    先說加密狗,再說客戶端/伺服器。

    加密狗軟體裡主要的加密方式有以下幾種。

    1.偽加密:修改資料夾或者檔名,設定為隱藏檔案達到所謂的“加密”目的。

    2.異或加密與錯位加密:依次讀取檔案的每一位byte位元組,透過與指定數字異或計算得到一個新位元組存入檔案中,解密的時候只要再挨個異或一次就行,安全性不高,但速度快。一旦軟體被反編譯,破解輕輕鬆。RC4流加密雖然也是異或操作,但比這個複雜。如果是英文或者數字文字,可以考慮用錯位的方式,就是ASCII碼+1那種,A變B,B變C。邏輯也很簡單,安全性極差,不多說。

    3.DES加密:對稱加密。目前比較常用的加密方法。DES3代(應該是256位)比較安全些。透過一定手段可以破解,但代價比較大。沒研究過。

    4.AES加密:對稱加密。AES256是目前最安全的演算法之一,被軍方(米國)採用。只能透過暴力破解(隨機碰撞)的方式破解,密碼越長難度自然越高。AES加密引數有兩個,一個是IV向量,一個是密碼Key。雖然安全,但問題也很明顯,加解密速度非常慢。通常可以只加密檔案的一部分達到隱藏檔案的目的。之前有AES128被破解的傳聞,但也僅僅只是傳聞而已,並沒發現有什麼論文或者報道發表出來。

    AES加密是不怕別人知道演算法的(必須有使用者的真實明文密碼才能解開)。DES可能也是吧,沒有關注過DES,就不誤導人了。

    這裡額外多說一句MD5的。MD5一般用來儲存使用者密碼或者資料簽名。它和SHA(雜湊)加密方式一樣,都是不可逆的。

    儲存使用者密碼時,生成一個隨機鹽值(比如GUID),把這個鹽值以及MD5(key+salt)兩個資料一起儲存下來。由於其不可逆性,就算你伺服器被黑了,使用者的密碼也不會洩露。使用者登入的時候,取出對應的鹽值再MD5(key+salt)一次,比對一下就知道是不是正確密碼了。

    至於為什麼要加鹽,如果直接MD5(key)的話,駭客使用彩虹表(就是大量已知的key—MD5對照表)還是可以查出來明文的。

    遊戲或者其他的C/S通訊,一般會用RSA加密(可以配合DES或者AES一起用,比如伺服器證書(CA,就是帶https標誌的那種網站用的啦)一般就是AES+RSA加密的)。

    RSA加密:不對稱加密,即公鑰私鑰模式。它的公鑰和私鑰是一大串字元,一般儲存成xml格式或者byte流,存成字串會出錯。

    RSA通常用於網路socket通訊。私鑰由伺服器儲存,公鑰公開給所有的客戶端。客戶端把訊息用公鑰加密,然後再傳給伺服器,伺服器用私鑰解開密文。反之,伺服器向客戶端發訊息時,會用私鑰對訊息進行簽名,客戶端收到訊息會用公鑰確認簽名,這樣可以確保訊息是由真正的伺服器傳來的,而不是其他的惡意主機。

    公鑰只能用來加密資料和驗證簽名,沒有解密功能。同樣的,私鑰只能用來解密資料和生成簽名,不能用來加密資料。

    也正是因為RSA加密要絕對保證私鑰的安全,所以不適合用來做檔案加密軟體。軟體一被破解,完全沒有任何保護性可言。

  • 中秋節和大豐收的關聯?
  • 印度都用什麼語言?