java-信息安全(三)-PBE加密算法
概述
1.1、基本概念:
PBE算法(Password Based Encryption,基于口令加密),通过加Salt来增强安全性。对已有算法【AES、DES等】的包装,
其特点是使用口令代替了密钥,而口令由用户自己掌管,采用随机数杂凑多重加密等方法保证数据的安全性。
PBE算法在加密过程中并不是直接使用口令来加密,而是加密的密钥由口令生成,这个功能由PBE算法中的KDF函数完成。KDF函数的实现过程为:将用户输入的口令首先通过“盐”(salt)的扰乱产生准密钥,再将准密钥经过散列函数多次迭代后生成最终加密密钥,密钥生成后,PBE算法再选用对称加密算法对数据进行加密,可以选择DES、3DES、RC5等对称加密算法.
PBE算法结合了消息摘要算法和对称加密算法的优点
1.2、算法支持


jdk支持的
list.add("PBEWITHHMACSHA1ANDAES_128");
list.add("PBEWITHHMACSHA1ANDAES_256");
list.add("PBEWITHHMACSHA224ANDAES_128");
list.add("PBEWITHHMACSHA224ANDAES_256");
list.add("PBEWITHHMACSHA256ANDAES_128");
list.add("PBEWITHHMACSHA256ANDAES_256");
list.add("PBEWITHHMACSHA384ANDAES_128");
list.add("PBEWITHHMACSHA384ANDAES_256");
list.add("PBEWITHHMACSHA512ANDAES_128");
list.add("PBEWITHHMACSHA512ANDAES_256");
list.add("PBEWITHMD5ANDDES");
list.add("PBEWITHMD5ANDTRIPLEDES");
list.add("PBEWITHSHA1ANDDESEDE");
list.add("PBEWITHSHA1ANDRC2_128");
list.add("PBEWITHSHA1ANDRC2_40");
list.add("PBEWITHSHA1ANDRC4_128");
list.add("PBEWITHSHA1ANDRC4_40");
注意 AES 有向量改初始值
bc支持的
list.add("PBEWithMD2AndDES");
list.add("PBEWithMD5AndRC2");
list.add("PBEWithSHA1AndDES");
list.add("PBEWithSHA1AndRC2");
list.add("PBEWithSHAAndIDEA-CBC");
list.add("PBEWITHSHAAND3-KEYTRIPLEDES-CBC");
list.add("PBEWithSHAAnd3KeyTripleDES");
list.add("PBEWITHSHAAND2-KEYTRIPLEDES-CBC");
list.add("PBEWithSHAAnd128BitRC2-CBC");
list.add("PBEWithSHAAnd40BitRC2-CBC");
list.add("PBEWithSHAAnd128BitRC4");
list.add("PBEWithSHAAnd40BitRC4");
list.add("PBEWithSHAAndTwofish-CBC");
list.add("PBEWITHSHA1AND128BITAES-CBC-BC");
list.add("PBEWITHSHA1AND192BITAES-CBC-BC");
list.add("PBEWITHSHA1AND256BITAES-CBC-BC");
list.add("PBEWITHSHA-1AND128BITAES-CBC-BC");
list.add("PBEWITHSHA-1AND192BITAES-CBC-BC");
list.add("PBEWITHSHA-1AND256BITAES-CBC-BC");
list.add("PBEWITHSHA-256AND128BITAES-CBC-BC");
list.add("PBEWITHSHA-256AND192BITAES-CBC-BC");
list.add("PBEWITHSHA-256AND256BITAES-CBC-BC");
list.add("PBEWITHSHA-256AND128BITAES-BC");
list.add("PBEWITHSHA-256AND192BITAES-BC");
list.add("PBEWITHSHA-256AND256BITAES-BC");
1.3、应用场景

1.4、示例代码
代码地址:https://github.com/bjlhx15/algorithm-sign.git
浙公网安备 33010602011771号