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. java 复习001

    java 复习001 比较随意的记录下我的java复习笔记 ArrayList 内存扩展方法 分配一片更大的内存空间,复制原有的数据到新的内存中,让引用指向新的内存地址 ArrayList在内存不够时 ...

  2. 从根源上解析 Java volatile 关键字的实现

    1.解析概览 内存模型的相关概念 并发编程中的三个概念 Java内存模型 深入剖析Volatile关键字 使用volatile关键字的场景 2.内存模型的相关概念 缓存一致性问题.通常称这种被多个线程 ...

  3. Argument 'xxx' is not a function, got undefined,初学Angular的第一个坑

    终于考完试了,在没更新的这一段时间里,一直都在忙于应付考试.不过在期间也是接触到不少好玩的东西,比如Html5的Canvas,我用lufylegend的Html5引擎做了个<看你有所色>的 ...

  4. BAT-使用BAT方法删除目录下0KB文件

    @Echo Off For /f "tokens=*" %%i in ('dir /a-d /b /s "*.*"') do ( If " (Del ...

  5. Spring Auto proxy creator example

    In last Spring AOP examples – advice, pointcut and advisor, you have to manually create a proxy bean ...

  6. 利用hashtable和time函数加速Lisp程序

    程序功能是从一个英文文本中得到单词表,再得到押韵词表.即输出可能这样开始: a ameoeba alba samba marimba... 这样结束: ...megahertz gigahertz j ...

  7. C++ 中复杂的声明

    1.方法也是有类型的,方法的类型由返回类型和形参表决定.比如int F (int)的类型就是去掉方法名,int (int). 2.对于方法类型,在返回类型和形参表之间,加上一个名称F,就表示一个特定的 ...

  8. SQL SERVER 设置自动备份和删除旧的数据库文件

    打开SQL SERVER MANAGEMENT STUDIO,启动SQL SERVER代理服务(注意在“控制面板-管理工具-服务”中设置SQL SERVER AGENT的启动类型为自动).启动后点击“ ...

  9. (字符串的模式匹配4.7.18)POJ 2406 Power Strings(求一个字符串的最小重复串)

    注意,在IDE运行时,可能会因为开的数组太大而报错,这时我们可以把数组开小一点来进行调试....提交的时候把数组的大小改成1000005即可.... #include <iostream> ...

  10. .NET 4.0中的泛型协变和反变

    转自:http://www.cnblogs.com/Ninputer/archive/2008/11/22/generic_covariant.html 随Visual Studio 2010 CTP ...