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加密解密工具类示例
# 第一组
# 转换为
# 第一个
# 多个
# 应用于
# 转化为
# 再加
# 也叫
# 值为
# 不满足
# 组中
# 各分
# 生下
# 非对称
# 随机数
# 不需要
# 以此类推
# 不容易
# 它可以
# 造成了
相关文章:
电视网站制作tvbox接口,云海电视怎样自定义添加电视源?
高防服务器:AI智能防御DDoS攻击与数据安全保障
如何用景安虚拟主机手机版绑定域名建站?
,在苏州找工作,上哪个网站比较好?
建站之星备案流程有哪些注意事项?
网站设计制作公司地址,网站建设比较好的公司都有哪些?
小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?
建站主机选购指南:核心配置与性价比推荐解析
广德云建站网站建设方案与建站流程优化指南
小米网站链接制作教程,请问miui新增网页链接调用服务有什么用啊?
临沂网站制作公司有哪些,临沂第四中学官网?
建站之星安装提示数据库无法连接如何解决?
建站之星安装模板失败:服务器环境不兼容?
用v-html解决Vue.js渲染中html标签不被解析的问题
微信h5制作网站有哪些,免费微信H5页面制作工具?
北京的网站制作公司有哪些,哪个视频网站最好?
海南网站制作公司有哪些,海口网是哪家的?
免费制作小说封面的网站有哪些,怎么接网站批量的封面单?
移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?
怎么用手机制作网站链接,dw怎么把手机适应页面变成网页?
如何在Golang中指定模块版本_使用go.mod控制版本号
在线流程图制作网站手机版,谁能推荐几个好的CG原画资源网站么?
建站之星微信建站一键生成小程序+多端营销系统
建站中国必看指南:CMS建站系统+手机网站搭建核心技巧解析
大连网站设计制作招聘信息,大连投诉网站有哪些?
c++ stringstream用法详解_c++字符串与数字转换利器
教学网站制作软件,学习*后期制作的网站有哪些?
建站ABC备案流程中有哪些关键注意事项?
实例解析angularjs的filter过滤器
如何在云主机快速搭建网站站点?
电影网站制作价格表,那些提供免费电影的网站,他们是怎么盈利的?
广平建站公司哪家专业可靠?如何选择?
较简单的网站制作软件有哪些,手机版网页制作用什么软件?
武汉网站如何制作,黄黄高铁武穴北站途经哪些村庄?
深圳 网站制作,深圳招聘网站哪个比较好一点啊?
如何快速使用云服务器搭建个人网站?
建站之星如何快速解决建站难题?
建站主机选择指南:服务器配置与SEO优化实战技巧
如何选择最佳自助建站系统?快速指南解析优劣
湖北网站制作公司有哪些,湖北清能集团官网?
深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?
小建面朝正北,A点实际方位是否存在偏差?
定制建站流程步骤详解:一站式方案设计与开发指南
网站制作的方法有哪些,如何将自己制作的网站发布到网上?
建站之星客服服务时间及联系方式如何?
北京网站制作公司哪家好一点,北京租房网站有哪些?
潮流网站制作头像软件下载,适合母子的网名有哪些?
如何在阿里云高效完成企业建站全流程?
c# 服务器GC和工作站GC的区别和设置
上海网站制作网站建设公司,建筑电工证网上查询系统入口?
*请认真填写需求信息,我们会在24小时内与您取得联系。