PBE加密算法

一、PBE簡介

PBE算法,全稱password based encrytpion,基於口令的 加密,該算法不是新的算法,是融合算法;主要步驟以下:java

首先用戶輸入口令,而後根據salt,採用信息摘要算法(MD五、SHA-256等)計算一個固定長度的摘要出來;算法

將該固定長度的摘要轉換爲對稱加密算法(DES、AES) 要求長度的密鑰key;安全

使用key並採用對稱加密算法對數據進行加密。dom

PBE沒有密鑰的概念,PBE使用口令替代了密鑰。PBE 算法是信息 摘要算法和對稱加密算法的融合,好比 PBEWithMD5AndDES是 MD5和DES的結合,相似的也能夠反 推。eclipse

二、口令和密鑰的區別

口令:通常與用戶名對應,是某個用戶本身編織的便於 記憶的一串單詞、數字、漢字字符,口令的特色容易被記憶, 也容易泄露和被盜取,容易被社會工程學、暴力破解、撞庫等 方式獲取。ide

密鑰:是通過加密算法計算出來的,密鑰通常不容易記 憶,不容易被破解,並且不少時候密鑰是做爲算法的參數出現 的,算法對於密鑰長度也是有要求的,由於加密算法的做用就 是利用密鑰來擾亂明文順序;加密

NOTE:口令不能代替密鑰,可是能夠用信息摘要算法 將口令轉換爲密鑰;spa

三、eclipse中講解PBE算法的java代碼實現

1)在Mainactivity中分析代碼:blog

initSalt、encrypt、decrypt是在PBE類中定義的方法, 這幾個方法也是在Mainactivity中主要用到的;ip

PBE加密算法PBE加密算法

2)分析PBE類

SecureRandom:實例化安全隨機數

generateSeed: 返回給定的種子字節數量,該數量可以使用 此類將自身設置爲種子的生成算法來計算

PBEKeySpec:密鑰材料轉換

generateSecret:生成密鑰

PBE加密算法

小結

一、介紹PBE系列相關的算法以及實現原理。二、在eclipse中分析了PBE算法的代碼。

相關文章
相關標籤/搜索