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. Ext列表展现--普通排序sortable--全局排序remoteSort(EXTJS 全局排序问题)

    关于Ext的排序问题,一般涉及到两种方式. A.一种是默认的客户端排序机制,对当前页进行排序.sortable 这种排序模式不用多说,是人都会: 1.可以在Ext.grid.ColumnModel列模 ...

  2. lucene学习笔记:三,Lucene的索引文件格式

    Lucene的索引里面存了些什么,如何存放的,也即Lucene的索引文件格式,是读懂Lucene源代码的一把钥匙. 当我们真正进入到Lucene源代码之中的时候,我们会发现: Lucene的索引过程, ...

  3. Eclipse与tomcat服务器建立关联

    首先,点击 打开preference,打开如下界面 点击ADD,进入如下界面,选择tomcat服务器的版本->点击next 进入如下界面,Name:服务器名字,directory:服务器目录 补 ...

  4. HTML5每日一练之details展开收缩标签的应用

    details标签的出现,为我们带来了更好的用户体验,不必为这种收缩展开的效果再编写JS来实现.注:目前仅Chrome支持此标签. details有一个新增加的子标签——summary,当鼠标点击su ...

  5. Struts2在Action中访问WEB资源

    什么是WEB资源? 这里所说的WEB资源是指:HttpServletRequest, HttpSession, ServletContext 等原生的 Servlet API. 为什么需要访问WEB资 ...

  6. ocp 1Z0-042 1-60题解析

    1. Because of a power outage,instance failure has occurred. From what point in the redo log does rec ...

  7. POJ 1511 - Invitation Cards (dijkstra优先队列)

    题目链接:http://poj.org/problem?id=1511 就是求从起点到其他点的最短距离加上其他点到起点的最短距离的和 , 注意路是单向的. 因为点和边很多, 所以用dijkstra优先 ...

  8. KVM学习笔记

    检查机器是否启用KVM lsmod |grep kvm 安装KVM yum install libvirt python-virtinst qemu-kvm virt-viewer bridge-ut ...

  9. kettle内存溢出

    ETL工具kettle,在老版设计后,使用新版时,居然发生了内存溢出的错误: 出现: java heap 或者 OutOfMemory等字样 这是kettle分配的内存不足. 在kettle的运行路径 ...

  10. MDF文件数据恢复