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加密解密工具类示例
# 第一组
# 转换为
# 第一个
# 多个
# 应用于
# 转化为
# 再加
# 也叫
# 值为
# 不满足
# 组中
# 各分
# 生下
# 非对称
# 随机数
# 不需要
# 以此类推
# 不容易
# 它可以
# 造成了
相关文章:
建站之星24小时客服电话如何获取?
如何配置IIS站点权限与局域网访问?
Android自定义listview布局实现上拉加载下拉刷新功能
网站制作多少钱一个,建一个论坛网站大约需要多少钱?
美食网站链接制作教程视频,哪个教做美食的网站比较专业点?
详解一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)
,在苏州找工作,上哪个网站比较好?
建站之星如何助力企业快速打造五合一网站?
如何选择高效可靠的多用户建站源码资源?
成都网站制作公司哪家好,四川省职工服务网是做什么用?
如何在阿里云购买域名并搭建网站?
香港网站服务器数量如何影响SEO优化效果?
品牌网站制作公司有哪些,买正品品牌一般去哪个网站买?
如何在IIS中新建站点并解决端口绑定冲突?
动图在线制作网站有哪些,滑动动图图集怎么做?
如何在建站之星绑定自定义域名?
小型网站制作HTML,*游戏网站怎么搭建?
制作企业网站建设方案,怎样建设一个公司网站?
如何通过商城免费建站系统源码自定义网站主题?
建站主机选哪家性价比最高?
如何在橙子建站中快速调整背景颜色?
如何高效配置IIS服务器搭建网站?
网站专业制作公司有哪些,做一个公司网站要多少钱?
电商网站制作价格怎么算,网上拍卖流程以及规则?
MySQL查询结果复制到新表的方法(更新、插入)
如何在Windows环境下新建FTP站点并设置权限?
如何快速查询网站的真实建站时间?
定制建站如何定义?其核心优势是什么?
东莞专业网站制作公司有哪些,东莞招聘网站哪个好?
如何做静态网页,sublimetext3.0制作静态网页?
三星网站视频制作教程下载,三星w23网页如何全屏?
如何通过远程VPS快速搭建个人网站?
建站之星伪静态规则如何设置?
金*站制作公司有哪些,金华教育集团官网?
如何通过主机屋免费建站教程十分钟搭建网站?
深圳网站制作平台,深圳市做网站好的公司有哪些?
如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?
,巨量百应是干嘛的?
定制建站平台哪家好?企业官网搭建与快速建站方案推荐
如何优化Golang Web性能_Golang HTTP服务器性能提升方法
北京网站制作的公司有哪些,北京白云观官方网站?
广东专业制作网站有哪些,广东省能源集团有限公司官网?
专业网站建设制作报价,网页设计制作要考什么证?
如何在腾讯云服务器快速搭建个人网站?
子杰智能建站系统|零代码开发与AI生成SEO优化指南
大连网站制作费用,大连新青年网站,五年四班里的视频怎样下载啊?
网站制作和推广的区别,想自己建立一个网站做推广,有什么快捷方法马上做好一个网站?
昆明网站制作哪家好,昆明公租房申请网上登录入口?
郑州企业网站制作公司,郑州招聘网站有哪些?
定制建站方案优化指南:企业官网开发与建站费用解析
*请认真填写需求信息,我们会在24小时内与您取得联系。