java加密与签名

古典密码:以字符为基本加密单元

现代密码:以信息块为基本加密单元


受限制算法:算法保密

基于密钥算法:算法公开,密钥保密


对称密码算法:加密密钥与解密密钥相同

非对称密码算法:加密密钥与解密密钥不同,密钥分为公钥、私钥


散列函数:用来验证数据的完整性。长度不受限制,哈希值容易计算,运算过程不可逆。如MD5,SHA,MAC


OSI安全体系:

网络通信分为七层:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层


TCP/IP安全体系:网络接口层安全、网络层安全、传输层安全、应用层安全

抗否认性服务——公正机制

数据完整性机制——数据完整性机制

数据保密性服务——加密机制、业务流填充机制

访问控制服务——访问控制机制、路由控制机制

认证(鉴别)服务——认证机制、数字签名机制


Java安全组成:JCA、JCE、JSSE、JAAS

相关java包、类:java.security——消息摘要 ;javax.crypo安全消息摘要,消息认证(鉴别)码;java.net.ssl安全套接字

第三方java扩展:

Bouncy Castle 两种支持方案 1.配置 2.调用

Commons Codec:Apache; Base64、二进制、十六进制、字符集编码;


Base64算法(消息摘要):

算法实现:JDK,

Commons Codec,Bouncy Castle(需下载CC或BC的扩展jar包)

应用场景:e-mail,密钥,证书文件

jdk实现:

//编码

BASE64Encoder encoder = new BASE64Encoder();

String encode = encoder.encode(string.getBytes());

//解码

BASE64Decoder decoder = new BASE64Decoder();

String decode = new String(decoder.decodeBuffer(encode));

CC实现:

//编码

byte[] encodeBytes =Base64.encodeBase64(string.getBytes());

String encode = new String(encodeBytes);

//解码

byte[] decodeBytes = Base64.decodeBase64(encodeBytes);

String decode = new String(decodeBytes);

BC实现:

//编码

byte[] encodeBytes = Base64.encode(string.getBytes());

String encode = new String(encodeBytes);

//解码

byte[] decodeBytes = Base64.decode(encodeBytes);

String decode = new String(decodeBytes);

对称加密算法

加密密钥=解密密钥

常用对称算法:DES,3DES,AES,PBE,IDEA

1.构建密钥 2.公布密钥 3.使用密钥对数据加密 4.发送加密数据 5.使用密钥对数据解密

DES:有漏洞,广受诟病,已不推荐使用。

3DES:三重DES,用的比较多,但效率低。

AES:用的最多的对称算法

1.构建口令 2.公布口令 3.构建盐 4.使用盐、口令对数据加密 5.发送盐、加密数据 6.使用口令,盐对数据解密

PBE:基于口令加密,加盐,结合了消息摘要算法和对称加密算法的优势


非对称加密算法

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值