java加解密
换工作中,把以前学的知识,整理整理。能否得到一份好的薪资且满意的工作,然后赢取白富美,走向人生的巅峰,就靠它了。哈哈。
对称加密:DES, AES
DES (数据加密算法) : 明文按64位进行分组,秘钥长64位,密钥事实上是56位参与DES运算(第8、16、24、32、40、48、56、64位是校验位, 使得每个密钥都有奇数个1)分组后的明文组和56位的密钥按位替代或交换的方法形成密文组的加密方法。
AES (高级加密算法) :区块长度固定为128 比特,密钥长度则可以是128,192或256比特。
非对称加密:RSA,ECC,D-H
ECC (椭圆加密算法) : 比RSA更高效。
D-H (Diffie-Hellman密钥交换协议/算法(Diffie-Hellman Key Exchange/Agreement Algorithm)) : Oakley算法优化。
哈希 (摘要算法):MD系列,SHA系列
MD5 : 16字节(128位)的校验值,一般用32位十六进制数表示。校验数据完整性。
SHA (安全哈希算法):由于SHA系列算法的数据摘要长度较长,因此其运算速度与MD5相比,也相对较慢。
对称加密原理:
对称加密体制分为两种:
1、一种是对明文的单个位(或字节)进行运算,称为流密码,也称为序列密码;
2、一种是把明文信息划分为不同的组(或块)结构,分别对每个组(或块)进行加密、解密,称为分组密码。
工作模式
以DES算法的工作模式为例,DES算法根据其加密算法所定义的明文分组的大小(56位),将数据分割成若干56位的加密区块,再以加密区块为单位,分别进行加密处理。如果最后剩下不足一个区块的大小,称之为短块。短块的处理方法有填充法、流密码加密法、密文挪用技术。

不同模式的特点和用途:
ECB 模式适用于对字符加密, 例如, 密钥加密。
OFB 模式常用于卫星通信中的加密。
由于对 CBC 和CFB 模式当改变一个明文分组xi则yi 与其后所有密文分组都会受到影响, 这一性质说明这两种模式都可用于认证系统。更明确的说, 这些模式能被用来产生一个消息认证码, 即MAC。它能使消息接收方相信给定的明文序列的确来自合法发送者,而没有被篡改。这再次说明技术的两面性。
使用规则:ECB模式简单、高速,但最弱,易受重发和替换攻击,一般不采用。CBC,CFC,OFB模式的选用取决于实际的特殊需求。
填充方法
Java中对称加密对于短块的处理,一般是采用填充方式。
常采用的是:NoPadding(不填充)、Zeros填充(0填充)、PKCS5Padding填充。
ZerosPadding
方式:全部填充为0的字节
结果如下:
F1 F2 F3 F4 F5 F6 F7 F8 //第一块
F9 00 00 00 00 00 00 00 //第二块
PKCS5Padding
方式:每个填充的字节都记录了填充的总字节数
结果如下:
F1 F2 F3 F4 F5 F6 F7 F8 //第一块
F9 07 07 07 07 07 07 07 //第二块
java加解密的更多相关文章
- Java 加解密技术系列文章
Java 加解密技术系列之 总结 Java 加解密技术系列之 DH Java 加解密技术系列之 RSA Java 加解密技术系列之 PBE Java 加解密技术系列之 AES Java 加解密技术系列 ...
- 160829、Java加解密与数字签名
** Java加解密 ** 实现方式:JDK实现,CC,BC JDK提供比较基础的底层的实现:CC提供一些简化的操作:BC提供补充 一.Base64加密 非常简单,加密解密就一个函数. 代码如下: 二 ...
- Java加解密与数字签名
** Java加解密 ** 实现方式:JDK实现,CC,BC JDK提供比较基础的底层的实现:CC提供一些简化的操作:BC提供补充 一.Base64加密 非常简单,加密解密就一个函数. 代码如下: 二 ...
- 11.Java 加解密技术系列之 总结
Java 加解密技术系列之 总结 序 背景 分类 常用算法 原理 关于代码 结束语 序 上一篇文章中简单的介绍了第二种非对称加密算法 — — DH,这种算法也经常被叫做密钥交换协议,它主要是针对密钥的 ...
- 10.Java 加解密技术系列之 DH
Java 加解密技术系列之 DH 序 概念 原理 代码实现 结果 结束语 序 上一篇文章中简单的介绍了一种非对称加密算法 — — RSA,今天这篇文章,继续介绍另一种非对称加密算法 — — DH.当然 ...
- 9.Java 加解密技术系列之 RSA
Java 加解密技术系列之 RSA 序 概念 工作流程 RSA 代码实现 加解密结果 结束语 序 距 离上一次写博客感觉已经很长时间了,先吐槽一下,这个月以来,公司一直在加班,又是发版.上线,又是新项 ...
- 8.Java 加解密技术系列之 PBE
Java 加解密技术系列之 PBE 序 概念 原理 代码实现 结束语 序 前 边的几篇文章,已经讲了几个对称加密的算法了,今天这篇文章再介绍最后一种对称加密算法 — — PBE,这种加密算法,对我的认 ...
- 7.java 加解密技术系列之 AES
java 加解密技术系列之 AES 序 概念 原理 应用 代码实现 结束语 序 这篇文章继续介绍对称加密算法,至于今天的主角,不用说,也是个厉害的角色 — — AES.AES 的出现,就是为了来替代原 ...
- 6. Java 加解密技术系列之 3DES
Java 加解密技术系列之 3DES 序 背景 概念 原理 代码实现 结束语 序 上一篇文章讲的是对称加密算法 — — DES,这篇文章打算在 DES 的基础上,继续多讲一点,也就是 3 重 DES ...
- 5.Java 加解密技术系列之 DES
Java 加解密技术系列之 DES 序 背景 概念 基本原理 主要流程 分组模式 代码实现 结束语 序 前 几篇文章讲的都是单向加密算法,其中涉及到了 BASE64.MD5.SHA.HMAC 等几个比 ...
随机推荐
- Android项目--获取系统通讯录列表
----------------- 通讯录列表 ----------------- 按常理来说,获取系统通讯录列表,无非就是将通讯录的数据库打开获取数据,适配,添加即可. Cursor cursor; ...
- 12个很少被人知道的CSS事实
之前没有认真的研究过,padding-bottom的值如果是百分比,那么它的实际值是根据父类的宽度来调整的.我还以为是根据这个元素的本身的宽度来定义呢?汗..padding-top/padding-l ...
- oracle 表导入到powerDesigner 中
最近不忙,之前一直是用powerDesigner看表结构,还没自己导入过,今天试试 oracle 表导入到powerDesigner 中步骤: 1.File--->reverse Enginne ...
- 推荐几个JSON工具
JSON查看 http://jsonviewer.codeplex.com/ JSON转类(非常好使) http://jsonclassgenerator.codeplex.com https://g ...
- HBase Maven 工程模块梳理
HBase Maven 工程各个 Model 功能说明: github 地址:git://git.apache.org/hbase.git 版本:2.0.0-SNAPSHOT hbase-annota ...
- javascript设计模式系列
javascript设计模式系列 创建型: 1.抽象工厂模式(Abstract Factory) 2.构建者模式(Builder) 3.工厂方法模式(Factory Method) 4.原型模式( ...
- 使用celery之怎么让celery跑起来
celery 官网帮助文档 http://docs.celeryproject.org/en/latest/index.html 前言 自从发了上次的文章使用celery之深入celery配置, 有 ...
- MVC 4 插件化架构简单实现实例篇
ASP.NET MVC 4 插件化架构简单实现-实例篇 先回顾一下上篇决定的做法: 1.定义程序集搜索目录(临时目录). 2.将要使用的各种程序集(插件)复制到该目录. 3.加载临时目录中的程序集 ...
- 框架的设计之IRepository还是IRepository<T>
[Yom框架]漫谈个人框架的设计之[是IRepository还是IRepository<T>]? 前言 ...
- 【NET】Winform用户控件的初步封装之列表页控件
public abstract partial class TListPager<TEntity, TRepository, TSqlStrConstruct> : UserControl ...