您的位置:首页 > 编程语言 > Java开发

JAVA加密算法使用——密码学概述、JAVA相关密码学常用类

2018-02-10 20:54 513 查看
编程开发中,安全问题也是值得每个人思考的,所以打算写关于JAVA加密方面的blog,该博客就简单说说密码学的一些基本问题以及概念吧

该篇博客目录

1、密码学四大功能、基本模型

2、密码学算法分类

3、密码学五元组、密钥与密码区别

4、对称密码与非对称密码区别

5、JAVA相关密码学的常用类

一、密码学四大功能、基本模型

1、四大功能

机密性

鉴别(发送方和接收方都能鉴别另一方的身份。也就是第三方无法冒充)

报文完整性(内容在运输过程没有被改变)

不可否认性

2、基本模型



二、密码学算法分类

消息编程:Base64

消息摘要:MD类、SHA类、MAC(消息验证码,在MD类与SHA类上增加了密钥的支持)

对称密码:DES、3DES、AES(对称密码的标准(最新),增加了密钥的长度)

非对称密码:RSA、DH密钥交换

数字签名:RSASignature(基于RSA)、DSASignature(基于DSA)

三、密码学五元组

明文

密文

加密算法

解密算法

密钥(安全性依赖于密钥)

现在基本上加密算法解密算法都是公开的。因为那些被公认为强度大的加密算法才值得使用

说到密钥,就说说密钥和密码的区别吧。网上有种解释挺形象的:

比如密码是2,1 4,5

即找到一个对应的
c11d
密码本,找到在书中的第二页第一个字,和第四页第五个字完成解密。而这本是就是密钥,几行第几个字这就是规则。所以密码=密钥+规则

四、对称密码与非对称密码区别

对称密码(传统密码):加解密使用相同密钥的密码体制

非对称密码(公钥密码):加解密使用不同的密钥————公钥和私钥(这里公钥与私钥区别不再阐述)

五、JAVA相关密码学的常用类

1、消息编码

BASE64Encoder(编码)

BASE64Decoder(解码)

2、消息摘要

MessageDigest

3、对称密码

KeyGenerator(密钥生成器)

SecretKey(存储密钥)

Cipher(加解密功能)

4、非对称密码

KeyPairGenerator(密钥生成器——公钥与私钥)

KeyFactory(密钥工厂)

KeyPair(密钥对)

PublicKey(公钥)

PrivateKey(私钥)

Cipher(加解密功能)

5、数字签名

Signature
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: