Java 加密解密基础:

密码学是研究编制密码和破译密码的技术科学。研究密码变化的客观规律,应用于编制密码以保守通信秘密的,称为编码学;应用于破译密码以获取通信情报的,称为破译学,总称密码学。
密码学常用术语
明文: 待加密数据。
密文: 明文经过加密后数据。
加密: 将明文转换为密文的过程。
加密算法: 将明文转换为密文的转换算法。
加密密钥: 通过加密算法进行加密操作的密钥。
解密: 将密文转换为铭文的过程。
解密算法: 将密文转换为明文的转换算法。
解密密钥: 通过解密短发进行解密操作的密钥。
密码学分类
1.按时间分
a.古典密码:以字符为基本加密单元。
b.现代密码:以信息块为基本加密单元。
2按保密内容的算法划分
a.受限制算法:算法的保密性基于保持算法的秘密。
b.基于密钥算法:算法的保密性基于对密钥的保密。
3.按密钥体制划分
a.对称密码体制:也叫单钥或私钥密码体制,加密过程与解密过程使用同一套密钥。对应的算法就是对称加密算法,例如DES,AES。
b.非对称密码体制:也叫双钥或公钥密码体制,加密过程与解密过程使用不同的密钥。对应的算法就是非对称加密算法,例如RSA。
4.按明文处理方式划分
a.流密码:也称为序列密码,加密时每次加密一位或者一个字节的明文。例如RC4算法。
b.分组密码:加密时将明文分成固定长度的组,用同一个密钥和算法对每一组进行加密输出也是固定长度的明文。当最后一组大小不满足指定的分组大小时,
有两种处理模式:
无填充模式,直接对剩余数据进行加密,此组加密后大小与剩余数据有关;
有填充模式,对于不满足指定长度分组的进行数据填充;如果恰巧最后一组数据与指定分组大小相同,那么直接添加一个指定
大小的分组;填充的最后一个字节记录了填充的字节数。
分组密码工作模式简介
1.电子密码本模--ECB
将明文的各个分组独立的使用相同的密钥进行加密,这种方式加密时各分组的加密独立进行互不干涉,因而可并行进行。同样因为各分组独立加密的缘故,相同的明文分组加密之后具有相同的密文。该模式容易暴露明文分组的统计规律和结构特征。不能防范替换攻击。
其实照实现来看,ECB的过程只是把明文进行分组,然后分别加密,最后串在一起的过程。当消息长度超过一个分组时,不建议使用该模式。在每个分组中增加随机位(如128位分组中96位为有效明文,32位的随机数)则可稍微提高其安全性,但这样无疑造成了加密过程中数据的扩张。
优点:
1.简单;
2.有利于并行计算;
3.误差不会被传送;
缺点:
1.不能隐藏明文的模式;
2.可能对明文进行主动攻击;
2.密码分组链接模--CBC
需要一个初始化向量IV,第一组明文与初始化向量进行异或运算后再加密,以后的每组明文都与前一组的密文进行异或运算后再加密。IV 不需要保密,它可以明文形式与密文一起传送。
优点:
1.不容易主动攻击,安全性好于ECB,适合传输长度长的报文,是SSL、IPSec的标准。
缺点:
1.不利于并行计算;
2.误差传递;
3.需要初始化向量IV
3.密文反馈模式--CFB
需要一个初始化向量IV ,加密后与第一个分组明文进行异或运算产生第一组密文,然后对第一组密文加密后再与第二组明文进行异或运算缠身第二组密文,一次类推,直到加密完毕。
优点:
1.隐藏了明文模式;
2.分组密码转化为流模式;
3.可以及时加密传送小于分组的数据;
缺点:
1.不利于并行计算;
2.误差传送:一个明文单元损坏影响多个单元;
3.唯一的IV;
4. 输出反馈模式--OFB
需要一个初始化向量IV ,加密后得到第一次加密数据,此加密数据与第一个分组明文进行异或运算产生第一组密文,然后对第一次加密数据进行第二次加密,得到第二次加密数据,第二次加密数据再与第二组明文进行异或运算产生第二组密文,一次类推,直到加密完毕。
优点:
1.隐藏了明文模式;
2.分组密码转化为流模式;
3.可以及时加密传送小于分组的数据;
缺点:
1.不利于并行计算;
2.对明文的主动攻击是可能的;
3.误差传送:一个明文单元损坏影响多个单元;
5.计数器模式--CTR
使用计数器,计数器初始值加密后与第一组明文进行异或运算产生第一组密文,
计数器增加,然后,加密后与下一组明文进行异或运算产生下一组密文,以此类推,直到加密完毕
优点:
1.可并行计算;
2.安全性至少与CBC 模式一样好;
3.加密与解仅涉及密码算法的加密;
缺点:
1.没有错误传播,不易确保数据完整性;
分组密码填充方式简介
PKCS5 :填充字符串由一个值为5的字节序列组成,每个字节填充该字节序列的长度。明确定义Block的大小是8位
PKCS7 :填充字符串由一个值为7的字节序列组成,每个字节填充该字节序列的长度。对于块的大小是不确定的,可以在1-255之间
ISO10126:填充字符串由一个字节序列组成,此字节序列的最后一个字节填充字节序列的长度,其余字节填充随机数据。
希望本篇文章对您有所帮助
# Java
# 加密解密基础归纳整理
# 加密解密
# 详解Java利用实现对称加密(DES、3DES、AES)
# [J2SE]Java中3DES加密解密调用示例
# java常用工具类之DES和Base64加密解密类
# java中常用工具类之字符串操作类和MD5加密解密类
# 一个Java配置文件加密解密工具类分享
# Java实现DES加密与解密
# md5加密以及Java实现MD5加密解密类
# 简洁实用的Java Base64编码加密异常处理类代码
# Java实现的DES加密解密工具类实例
# Java实现的3des加密解密工具类示例
# 第一组
# 转换为
# 第一个
# 多个
# 应用于
# 转化为
# 再加
# 也叫
# 值为
# 不满足
# 组中
# 各分
# 生下
# 非对称
# 随机数
# 不需要
# 以此类推
# 不容易
# 它可以
# 造成了
相关文章:
c# 在高并发下使用反射发射(Reflection.Emit)的性能
JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)
建站org新手必看:2024最新搭建流程与模板选择技巧
建站之星体验版:智能建站系统+响应式设计,多端适配快速建站
浙江网站制作公司有哪些,浙江栢塑信息技术有限公司定制网站做的怎么样?
香港服务器部署网站为何提示未备案?
一键网站制作软件,义乌购一件代发流程?
C++中的Pimpl idiom是什么,有什么好处?(隐藏实现)
如何在Ubuntu系统下快速搭建WordPress个人网站?
免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?
网站制作员失业,怎样查看自己网站的注册者?
Swift中循环语句中的转移语句 break 和 continue
小型网站制作HTML,*游戏网站怎么搭建?
青浦网站制作公司有哪些,苹果官网发货地是哪里?
济南企业网站制作公司,济南社保单位网上缴费步骤?
阿里云高弹*务器配置方案|支持分布式架构与多节点部署
行程制作网站有哪些,第三方机票电子行程单怎么开?
高防服务器租用首荐平台,企业级优惠套餐快速部署
如何制作网站标识牌,动态网站如何制作(教程)?
建站之星代理商如何保障技术支持与售后服务?
建站之星展会模板:智能建站与自助搭建高效解决方案
Python lxml的etree和ElementTree有什么区别
网站制作新手教程,新手建设一个网站需要注意些什么?
建站之星如何防范黑客攻击与数据泄露?
如何选择建站程序?包含哪些必备功能与类型?
自助网站制作软件,个人如何自助建网站?
长春网站建设制作公司,长春的网络公司怎么样主要是能做网站的?
小米网站链接制作教程,请问miui新增网页链接调用服务有什么用啊?
如何在万网主机上快速搭建网站?
专业网站制作企业网站,如何制作一个企业网站,建设网站的基本步骤有哪些?
制作网站的网址是什么,请问后缀为.com和.com.cn还有.cn的这三种网站是分别是什么类型的网站?
上海网站制作开发公司,上海买房比较好的网站有哪些?
小说建站VPS选用指南:性能对比、配置优化与建站方案解析
武汉外贸网站制作公司,现在武汉外贸前景怎么样啊?
大同网页,大同瑞慈医院官网?
建站之星免费模板:自助建站系统与智能响应式一键生成
5种Android数据存储方式汇总
如何在阿里云购买域名并搭建网站?
香港服务器网站推广:SEO优化与外贸独立站搭建策略
建站之星收费标准详解:套餐费用及年费价格表一览
香港服务器租用每月最低只需15元?
建站之星CMS建站配置指南:模板选择与SEO优化技巧
如何快速生成凡客建站的专业级图册?
建站主机空间推荐 高性价比配置与快速部署方案解析
制作证书网站有哪些,全国城建培训中心证书查询官网?
高端智能建站公司优选:品牌定制与SEO优化一站式服务
胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?
制作国外网站的软件,国外有哪些比较优质的网站推荐?
如何选择可靠的免备案建站服务器?
如何选择服务器才能高效搭建专属网站?
*请认真填写需求信息,我们会在24小时内与您取得联系。