Java工具箱-java.security

  互联网应用有大量敏感数据在公网传输,存在被伪造、篡改、非法读取等风险。数据加密目前是对信息进行保护的一种最可靠的办法。它利用密码技术对信息进行加密,实现信息隐蔽,从而起到保护信息的安全的作用。

加密算法概述

  加密算法分为不可逆加密算法和可逆加密算法,可逆加密算法又分为对称性加密算法和非对称加密算法。
  不可逆加密算法加密后的内容无法还原成原文,一般用于带有明文数据的防篡改延签和口令加密。不可逆加密算法不存在密钥保管和分发问题,非常适合在分布式网络系统上使用,但因加密计算复杂,工作量相当繁重,通常只在数据量有限的情形下使用。
  对称加密(也叫私钥加密)指加密和解密使用相同密钥的加密算法,特点是算法公开、计算量小、加密速度快、加密效率高。一般用于自己加密自己解密的场景。
  非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。非对称加密算法适合数据传输双方都需要对数据进行加密解密的场景。如果由我们生成密钥对,则我们将公开密钥提供给对方。

加密算法分类:

算法选择(从性能和安全综合考虑)

  • 不可逆加密算法:MD5
  • 对称加密:AES
  • 非对称加密算法:RSA

非对称加密算法性能比对称加密低几个数量级5,在满足安全的情况下尽量使用对称加密。

Java 加密体系结构(JCA)

  JCA(Java Cryptography Architecture) JCA是一个提供访问和开发密码功能的框架。因为历史原因,Cryptography API位于两个独立的包内: java.security(Signature, MessageDigest)和javax.crypto(Cipher, KeyAgreement)。java.security.Provider抽象了Java security provider。Java内置的Provider提供了许多通用的密码算法,比如:RSA, DSA, ECDSA等签名算法、DES, AES, ARCFOUR等加密算法、MD5, SHA-1, SHA-256等信息摘要算法、还有Diffie-Hellman和ECDH这样的密钥协商算法。程序可能通过provider的名字随意地请求一个指定provider的实现。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值