注:此文章只是对如何学习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. 解剖SQLSERVER 第三篇 数据类型的实现(译)

    解剖SQLSERVER 第三篇  数据类型的实现(译) http://improve.dk/implementing-data-types-in-orcamdf/ 实现对SQLSERVER数据类型的解 ...

  2. Java中类继承、接口实现的一些细节(长期更新)

    前言 在Java中,子类继承父类,类实现接口是属于常识性的内容了,作为一个Java程序员应该也比较熟悉.不过子类继承父类,类实现接口中还是有一些小细节值得注意一下,本文就从个人工作.学习中入手,总结一 ...

  3. 字体大小自适应纯css解决方案

    viewpoint css3提供了一些与当前viewpoint相关的元素,vw,vh,vim等. “viewpoint” = window size vw = 1% of viewport width ...

  4. C# 关于Try/Catch对系统性能影响的总结

    自从开始考虑代码的运行效率和性能以后,写代码考虑的东西越来越多了,比如什么时候应该加try/catch?加太多的try/catch会不会降低性能?今天就来分享一下对try/catch对性能影响的一些看 ...

  5. 关于Web开发里并发、同步、异步以及事件驱动编程的相关技术

    一.开篇语 我的上篇文章<关于如何提供Web服务端并发效率的异步编程技术>又成为了博客园里“编辑推荐”的文章,这是对我写博客很大的鼓励,也许是被推荐的原因很多童鞋在这篇文章里发表了评论,有 ...

  6. 赴美工作常识(Part 4 - 面试)

    最近跟同事讨论面试的事情比较多,所以就综合大家所说的列举几条面试建议吧.这些建议是针对中国候选人应聘美国职位而写的,但适用范围可能更广.假若你实际的实力是 X,面试官感知到你的实力是 Y,这些建议既不 ...

  7. cocoapods 更新

    sudo gem update --system sudo gem install cocoapods pod setup pod --version

  8. CocoaPods 使用

    为什么要使用这个玩意呢,最近在使用swift开发项目,使用 swift 开源库的时候,在git上下载后居然不知道哪些是必须文件,还要思考下,看看哪些是需要的(不像原来oc开源库,一目了然),网上使用d ...

  9. 爱上MVC~为非法进行Action的用户提供HttpStatusCodeResult

    回到目录 对一MVC来说,它有Controller和Action,其中Action用来为页面提供数据和相关逻辑,并最后将页面渲染出来,而有些action是需要一些参数的,如文章的最终页,可能需要一个I ...

  10. 【管理心得之九】奉劝那些把组织“玩弄于鼓掌之间”的OL们。(别让组织看见此篇)

    场景再现====================== 会议主持    :今天把大家召集来,主要是讨论一下 架构师{林さん}辞职一事.{与会者 惊叹.惊讶..............}     会议者A ...