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 ——加密解密的更多相关文章

  1. java加密解密的学习

    注:此文章只是对如何学习java加密解密技术做一个讲解.并不涉及具体的知识介绍,如果有需要请留言,有时间我补冲长.个人觉着学习一个学习方法比学习一个知识点更有价值的多. 首先,对于加密解密知识体系没有 ...

  2. Java加密解密字符串

    http://www.cnblogs.com/vwpolo/archive/2012/07/18/2597232.html Java加密解密字符串   旧文重发:http://www.blogjava ...

  3. java加密解密

    java加密解密 public class MD5Util { /** * @param args */ public static void main(String[] args) { System ...

  4. password学4——Java 加密解密之消息摘要算法(MD5 SHA MAC)

    Java 加密解密之消息摘要算法(MD5 SHA MAC) 消息摘要 消息摘要(Message Digest)又称为数字摘要(Digital Digest). 它是一个唯一相应一个消息或文本的固定长度 ...

  5. Java加密解密大全

    ChinaSEI系列讲义(By 郭克华)   Java加密解密方法大全                     如果有文字等小错,请多包涵.在不盈利的情况下,欢迎免费传播. 版权所有.郭克华 本讲义经 ...

  6. java加密解密算法位运算

    一.实例说明 本实例通过位运算的异或运算符 “ ^ ” 把字符串与一个指定的值进行异或运算,从而改变每个字符串中字符的值,这样就可以得到一个加密后的字符串.当把加密后的字符串作为程序输入内容,异或运算 ...

  7. ◆JAVA加密解密-3DES

    从数据安全谈起       当你使用网银时,是否担心你的银行卡会被盗用?     当你和朋友用QQ进行聊天时,是否担心你的隐私会被泄露?     作为开发者,编写安全的代码比编写优雅的代码更重要,因为 ...

  8. java加密-解密小结

    加密算法可以分为 双向加密(对称加密.不对称加密) 单向加密(不可逆加密)—— MD5.sha.hmac... 在对称加密算法中,使用的密钥只有一个,发收信双方都使用这个密钥对数据进行加密和解密 有: ...

  9. Java加密解密相关

    关于解释加密解密中的填充方案: http://laokaddk.blog.51cto.com/368606/461279/ 关于对称加密中的反馈模式: http://blog.csdn.net/aaa ...

随机推荐

  1. Android相关图书推荐

    疯狂Android讲义(第3版 附光盘) 作      者 李刚 著 出 版 社 电子工业出版社 出版时间 2015-06-01 版      次 3 页      数 780 印刷时间 2015-0 ...

  2. Tsinsen A1219. 采矿(陈许旻) (树链剖分,线段树 + DP)

    [题目链接] http://www.tsinsen.com/A1219 [题意] 给定一棵树,a[u][i]代表u结点分配i人的收益,可以随时改变a[u],查询(u,v)代表在u子树的所有节点,在u- ...

  3. 复习C语言

    今天突然有感觉复习下C语言了,发现已经好久没有用过C编程了,话说最近都没有编过程序了都,趁现在还有点时间,好好学习下C了.话不多说上题目 请定义一个宏,比较两个数a.b的大小,不能使用大于.小于.if ...

  4. Maven解决Missing artifact com.sun:tools:jar:1.5.0错误

    <dependency> <groupId>com.sun</groupId> <artifactId>tools</artifactId> ...

  5. 使用matplotlib绘制带图例的图表

    #coding=utf8 from pylab import * plt.figure(figsize=(8,10), dpi=50) plt.plot(do_tow2[28:508],do_prn2 ...

  6. Windows Azure Platform (一) 云计算的出现

    <Windows Azure Platform 系列文章目录> 最近的一年一直致力于微软云计算技术的推广和研究,对于微软的云计算平台Windows Azure Platform有一定的了解 ...

  7. JAVA NIO 类库的异步通信框架netty和mina

    Netty 和 Mina 我究竟该选择哪个? 根据我的经验,无论选择哪个,都是个正确的选择.两者各有千秋,Netty 在内存管理方面更胜一筹,综合性能也更优.但是,API 变更的管理和兼容性做的不是太 ...

  8. Linux之一次性安装开发工具:yum groupinstall Development tools

    [spark@sparksinglenode ~]$ yum grouplist | moreLoaded plugins: fastestmirror, refresh-packagekit, se ...

  9. JavaScript快排与原生sort的测试

    今天工作室断网!果断回宿舍,不然各种资料都没有.(他说将来会找到!)不好意思,又哼起来了.进入主题,大家都知道,快排是各种排序算法中,最高效的也是应用最广的,还有更重要的一点,面试特别爱考的! 其实大 ...

  10. JavaScript——以简单的方式理解闭包

    闭包,在一开始接触JavaScript的时候就听说过.首先明确一点,它理解起来确实不复杂,而且它也非常好用.那我们去理解闭包之前,要有什么基础呢?我个人认为最重要的便是作用域(lexical scop ...