cooking java ——加密解密
java安全与密码概述
主要分为三部分:
- 密码学基础,包括:相关术语;分类;常用安全体系。
- java的安全组成;jdk以及第三方扩展。
- 相关实现代码,包括:base64、MD5········
密码学基础
相关术语
- 明文:待加密的信息
- 密文:加密后的明文
- 加密:明文转密文
- 加密算法:明文转密文的算法
- 加密密钥:加密算法进行加密操作的密钥
- 解密:密文转为明文
- 解密算法:密文转成明文的算法
- 解密密钥:解密算法进行解密操作的密钥
- 密码分析:截取密文,通过分析推出明文或密钥
- 密码体系:明文空间、密文空间、密钥空间、加密算法、解密算法
- 密码协议:安全协议,以密码学为基础的信息交换通信协议
- 密码系统:加密,解密的系统
- 柯克霍夫原则:数据的安全集与密钥而不是算法,对密钥保密,对算法公开,现代密码学设计的基本原则
分类
按时间分类:
- 古典密码:以字符为基本加密单元
- 现代密码:以信息块为基本加密单元
按保密内容分类:
- 受限制算法:保密性基于算法的保密
- 集与密钥算法:保密性基于对密钥的保密
明文处理方法分类:
- 分组密码:用同一密钥和算法加密固定长度的组
- 流密码:也称序列密码,每次加密一位或者一个字节
密码体系
- 对称密码:加密解密密钥相同
- 非对称密码:密钥分公钥和私钥,加密解密密钥不相同
- 对称密码算法:应用于对称密码的加密,解密算法
- 非对称密码算法:应用于非对称密码的加密,解密算法
散列函数
用于验证数据的完整性,特点是:
- 长度不受限制
- 哈希值容易计算
- 散列原酸过程不可逆
有这些特性,发展处很多有关散列函数相关的算法,如:
- 消息摘要算法MD5
- SHA:安全散列算法
- MAC:消息认证码算法
安全体系
常用的安全体系有两种:OSI安全体系和TCP/IP安全体系,这儿就不过多讲解,放两张安全体系图大致了解下即可。


java安全体系
组成
- JCA(Java Cryptography Architecture)
- JCE(Java Cryptography Extension)
- JSSE(Java Secure Socket Extension)
- JAAS(Java Authentication and Authentication Service)
相关包和类
- java.security:消息摘要
- java.crypto:安全消息摘要,消息认证鉴别码
- java.net.ssl:安全套接字
第三方扩展
- Bouncy Castle:支持两种方式使用,一是在jdk中配置,再者就是调用addprovider
- Commons Codec:是apache开源项目,支持BASE64,URL编码解码
cooking java ——加密解密的更多相关文章
- java加密解密的学习
注:此文章只是对如何学习java加密解密技术做一个讲解.并不涉及具体的知识介绍,如果有需要请留言,有时间我补冲长.个人觉着学习一个学习方法比学习一个知识点更有价值的多. 首先,对于加密解密知识体系没有 ...
- Java加密解密字符串
http://www.cnblogs.com/vwpolo/archive/2012/07/18/2597232.html Java加密解密字符串 旧文重发:http://www.blogjava ...
- java加密解密
java加密解密 public class MD5Util { /** * @param args */ public static void main(String[] args) { System ...
- password学4——Java 加密解密之消息摘要算法(MD5 SHA MAC)
Java 加密解密之消息摘要算法(MD5 SHA MAC) 消息摘要 消息摘要(Message Digest)又称为数字摘要(Digital Digest). 它是一个唯一相应一个消息或文本的固定长度 ...
- Java加密解密大全
ChinaSEI系列讲义(By 郭克华) Java加密解密方法大全 如果有文字等小错,请多包涵.在不盈利的情况下,欢迎免费传播. 版权所有.郭克华 本讲义经 ...
- java加密解密算法位运算
一.实例说明 本实例通过位运算的异或运算符 “ ^ ” 把字符串与一个指定的值进行异或运算,从而改变每个字符串中字符的值,这样就可以得到一个加密后的字符串.当把加密后的字符串作为程序输入内容,异或运算 ...
- ◆JAVA加密解密-3DES
从数据安全谈起 当你使用网银时,是否担心你的银行卡会被盗用? 当你和朋友用QQ进行聊天时,是否担心你的隐私会被泄露? 作为开发者,编写安全的代码比编写优雅的代码更重要,因为 ...
- java加密-解密小结
加密算法可以分为 双向加密(对称加密.不对称加密) 单向加密(不可逆加密)—— MD5.sha.hmac... 在对称加密算法中,使用的密钥只有一个,发收信双方都使用这个密钥对数据进行加密和解密 有: ...
- Java加密解密相关
关于解释加密解密中的填充方案: http://laokaddk.blog.51cto.com/368606/461279/ 关于对称加密中的反馈模式: http://blog.csdn.net/aaa ...
随机推荐
- Android相关图书推荐
疯狂Android讲义(第3版 附光盘) 作 者 李刚 著 出 版 社 电子工业出版社 出版时间 2015-06-01 版 次 3 页 数 780 印刷时间 2015-0 ...
- Tsinsen A1219. 采矿(陈许旻) (树链剖分,线段树 + DP)
[题目链接] http://www.tsinsen.com/A1219 [题意] 给定一棵树,a[u][i]代表u结点分配i人的收益,可以随时改变a[u],查询(u,v)代表在u子树的所有节点,在u- ...
- 复习C语言
今天突然有感觉复习下C语言了,发现已经好久没有用过C编程了,话说最近都没有编过程序了都,趁现在还有点时间,好好学习下C了.话不多说上题目 请定义一个宏,比较两个数a.b的大小,不能使用大于.小于.if ...
- Maven解决Missing artifact com.sun:tools:jar:1.5.0错误
<dependency> <groupId>com.sun</groupId> <artifactId>tools</artifactId> ...
- 使用matplotlib绘制带图例的图表
#coding=utf8 from pylab import * plt.figure(figsize=(8,10), dpi=50) plt.plot(do_tow2[28:508],do_prn2 ...
- Windows Azure Platform (一) 云计算的出现
<Windows Azure Platform 系列文章目录> 最近的一年一直致力于微软云计算技术的推广和研究,对于微软的云计算平台Windows Azure Platform有一定的了解 ...
- JAVA NIO 类库的异步通信框架netty和mina
Netty 和 Mina 我究竟该选择哪个? 根据我的经验,无论选择哪个,都是个正确的选择.两者各有千秋,Netty 在内存管理方面更胜一筹,综合性能也更优.但是,API 变更的管理和兼容性做的不是太 ...
- Linux之一次性安装开发工具:yum groupinstall Development tools
[spark@sparksinglenode ~]$ yum grouplist | moreLoaded plugins: fastestmirror, refresh-packagekit, se ...
- JavaScript快排与原生sort的测试
今天工作室断网!果断回宿舍,不然各种资料都没有.(他说将来会找到!)不好意思,又哼起来了.进入主题,大家都知道,快排是各种排序算法中,最高效的也是应用最广的,还有更重要的一点,面试特别爱考的! 其实大 ...
- JavaScript——以简单的方式理解闭包
闭包,在一开始接触JavaScript的时候就听说过.首先明确一点,它理解起来确实不复杂,而且它也非常好用.那我们去理解闭包之前,要有什么基础呢?我个人认为最重要的便是作用域(lexical scop ...