单向加密算法:
MD5,SHA算法是单向加密算法的代表,单向加密算法是数据完整性验证的常用算法。
对称加密算法:
DES算法是典型的对称加密算法的代表,对称加密算法是数据存储加密的常用算法
非对称算法:
RSA算法是典型的非对称加密算法的代表,非对称加密算法是数据传输加密常用的算法。
对称加密算法也可以用作数据传输加密,但是非对称加密算法在密钥的管理方面更有优势
java API对加密算法的支持
java API支持多种加密算法。如MessageDigest类,可以构建MD5和SHA两种算法。
MAC类可以构建HMAC加密算法,Cipher类也可以构建多种加密算法,
如DES,AES,Blowfish对称加密算法,以及RSA,DSA,DH等多种非对称加密算法,
Signature类可以用于数字签名和签名验证,Certificate类可以用于操作证书等。
非对称密码体制
非对称密码体制的加密密钥和解密密钥不相同,分为两个密钥,一个公开,一个保密。
公开的密钥称为公钥,保密的密钥称为私钥。
Mac 属于消息摘要的一种,但他不同于一般的消息摘要(如MessageDigest提供的消息摘要实现),
仅通过输入数据无法获得消息摘要,必须有一个有发送方和接收方共享的秘密密钥才能生成最终的
消息摘要—安全消息摘要。安全消息摘要也称为消息认证(鉴别)码
(Message Authentication Code, Mac)
Cipher类为加密和解密提供密码功能,它构成了java Cryptographiv Extension(JCE)
框架的核心。
HMAC是密钥相关的哈希运算消息认证码(Hash-based Message Authentication Code),
HMAC运算利用哈希算法,以一个密钥和一个消息为输入,生成一个消息摘要作为输出。
SHA1算法代码具体实现
`
public class SHA1
{
public String KEY_SHA = "SHA";
public String INPUTSTRING = "这是要加密的字符串";
@Test
public void testSha1() throws Exception
{
System.out.println("加密之前:\n" + INPUTSTRING);
// 将加密的字符串常量转换成字节数组
byte[] inputData = INPUTSTRING.getBytes();
// 验证SHA对于同一内容加密是否一致
assertArrayEquals(encryptSHA(inputData), encryptSHA(inputData));
System.out.println("经过encryptSHA处理

本文介绍了单向加密算法如MD5和SHA,对称加密算法如DES,以及非对称加密算法如RSA。强调了非对称加密在密钥管理上的优势,并提及Java API对各种加密算法的支持。同时,讨论了MAC和HMAC在消息完整性验证中的作用,以及如何结合不同加密方式提高安全性。总结中指出,单向加密常用于数据完整性检测,而不太重要的信息可以用HMAC保护。
最低0.47元/天 解锁文章
1272

被折叠的 条评论
为什么被折叠?



