一、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
2)分析PBE类
SecureRandom:实例化安全随机数
generateSeed: 返回给定的种子字节数量,该数量可以使用 此类将自身设置为种子的生成算法来计算
PBEKeySpec:密钥材料转换
generateSecret:生成密钥
小结
一、介绍PBE系列相关的算法以及实现原理。二、在eclipse中分析了PBE算法的代码。