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

首先,对于加密解密知识体系没有了解的同学,不建议去看什么《java加密与解密的艺术》。因为此书大多是对关于加密解密的java API的讲解,即使硬着头皮看完,也会是水里雾里的一片模糊。所以初学者还不建议直接阅读这类型书。但是初学者如何学习呢?

首先,应该先搞清一些加密、解密的概念,比如AES、RSA、MD5等是什么东西,以及相关的数字签名、数字摘要还有数字证书。对于搞清楚这些概念,一定要与实际应用相结合,那样才会更容易理解。知道了各种加密、解密算法的用途和应用场景,那么就可以说你基本了解了加密解密的知识。

经常有人对数字签名、数字证书搞混,在次我就以这个概念为例讲解一下:

  什么是数字签名?数字签名的用途是神马?

数字签名就是用私钥对数据的md5值进行加密。那用途是什么?我举个例子,比如甲公布了一个程序,但是怎么认出这个程序就是甲发布的呢。这就需要甲对程序先进行md5然后用手里的私钥进行加密,所谓数字签名。这里私钥只有甲持有,别人不可能有这个私钥。但大家都可以拥有甲私钥对应的公钥。这样大家拿到程序后,可以先对甲的数字签名用公钥解密,然后将程序md5后与解密后的私钥对比,如果相同,则说明程序确实是甲的并且没有被别人篡改。(md5就是数字摘要,既不同的数据计算出的md5值不可能相同。私钥和公钥匙是对应关系,属于非对称加密。)现在相信你能理解数字签名的用途了。就是用来证明某个东西是某人的。

那什么是数字证书啊?用途呢?

数字证书需要签证机构颁发,当然你需要交付服务费用。数字证书就是一个证明信,里边存放着一个重要信息就是公钥。为什么这样呢,任何人都可以发布公钥,你凭什么相信这个公钥是可靠地机构发布的呢?这时就有了签证机构,比如,甲去办理数字证书时,他会给甲一个私钥,然后把私钥对应的公钥放到数字证书里(只说重要点),但这样还不够,因为你凭什么相信这个数字证书可以相信呢。这时签证机构他们自己持有一个私钥,他们会用这个私钥对证书进行数字签名,而这个私钥对应的公钥,已经被操作系统预装在系统里了,因为这个操作系统相信这个签证机构。所以电脑受到证书后会用已有的签证机构的公钥对数字证书进行验证,如果确实是签证机构颁发的,就拿出里边的公钥与甲进行通信。

这下应该知道了数字证书的用途,那就是用来发布公钥。

这是应用中的流程和应用。但是还有一些概念需要懂,比如流密码、分组密码、工作模式等,这里给出一个不错的博文的链接:http://aub.iteye.com/blog/1129339

把这些概念和应用流程和原理搞清楚了,你在学习java加密解密,应该比切菜很容易,就是熟悉API的事。

本文不是讲解加密解密知识体系讲的文章,如果有需要,可以留言,我虚写一下。

java加密解密的学习的更多相关文章

  1. Java加密解密字符串

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

  2. java加密解密

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

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

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

  4. Java加密解密大全

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

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

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

  6. ◆JAVA加密解密-3DES

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

  7. java加密-解密小结

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

  8. cooking java ——加密解密

    java安全与密码概述 主要分为三部分: 密码学基础,包括:相关术语:分类:常用安全体系. java的安全组成:jdk以及第三方扩展. 相关实现代码,包括:base64.MD5········ 密码学 ...

  9. Java加密解密相关

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

随机推荐

  1. Yii2中的入口文件环境配置

    默认的Debug配置 在入口文件中 defined ( 'YII_DEBUG' ) or define ( 'YII_DEBUG', true ); defined ( 'YII_ENV' ) or ...

  2. ORM查询语言(OQL)简介--高级篇(续):庐山真貌

    相关文章内容索引: ORM查询语言(OQL)简介--概念篇 ORM查询语言(OQL)简介--实例篇 ORM查询语言(OQL)简介--高级篇:脱胎换骨 ORM查询语言(OQL)简介--高级篇(续):庐山 ...

  3. 【转】MySQL性能优化的21个最佳实践

    今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显.关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我们程序员需要去关注的事情.当我们去设计数据库表结构,对操作数据 ...

  4. Java设计模式8:迭代器模式

    迭代器模式 迭代器模式又叫做游标(Cursor)模式,其作用是提供一种方法访问一个容器元素中的各个对象,而又不暴露该对象的内部细节. 迭代器模式结构 迭代器模式由以下角色组成: 1.迭代器角色 负责定 ...

  5. Java对象表示方式1:序列化、反序列化和transient关键字的作用

    平时我们在Java内存中的对象,是无法进行IO操作或者网络通信的,因为在进行IO操作或者网络通信的时候,人家根本不知道内存中的对象是个什么东西,因此必须将对象以某种方式表示出来,即存储对象中的状态.一 ...

  6. Android Fragment add/replace以及backstack

    无论Fragment以何种方式加入,都不会影响backstack,backstack由addToBackStack函数决定,只有调用了这个函数,才会将Fragment加入返回栈.这个说法其实不太准确, ...

  7. android:onClick vs setOnClickListener

    为Android Widgets添加点击事件处理函数又两种方法,一个是在Xml文件中添加onClick属性,然后在代码中添加对应的函数.另一个是直接在代码中添加setOnClickListener函数 ...

  8. 绝对干货:自定义msi安装包的执行过程

    有时候我们需要在程序中执行另一个程序的安装,这就需要我们去自定义msi安装包的执行过程. 比如我要做一个安装管理程序,可以根据用户的选择安装不同的子产品.当用户选择了三个产品时,如果分别显示这三个产品 ...

  9. SQL-geography && Spatial result

    说起geography(地理)这个类型,我感觉好陌生,以前真的没有见过,今天在查询某个Address表的时候,却发现了新大陆——Spatial result(空间的结果). (1)表的结构 (2)查询 ...

  10. [Spring框架]Spring 事务管理基础入门总结.

    前言:在之前的博客中已经说过了数据库的事务, 不过那里面更多的是说明事务的一些锁机制, 今天来说一下Spring管理事务的一些基础知识. 之前的文章: [数据库事务与锁]详解一: 彻底理解数据库事务一 ...