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:填充字符串由一个字节序列组成,此字节序列的最后一个字节填充字节序列的长度,其余字节填充随机数据。
分享到:
相关推荐
1. **密码学基础**:介绍密码学的基本概念,包括加密与解密、明文、密文、密钥等。 2. **单字母表替代密码原理**:详细阐述该密码体制的工作机制,即如何建立原始字母表与替换字母表之间的映射关系,以及如何通过这...
在本文中,我们将深入探讨如何使用Java编程语言实现一种经典的密码学技术——换位密码算法。...通过这种方式,我们可以学习到Java编程、GUI设计以及密码学的基础知识,这对于理解和开发更复杂的加密系统具有重要意义。
本资源"JAVA数据加密解密的实例+Java实用源码整理learns"提供了关于Java中数据加密解密的实践案例和相关源码,帮助开发者深入理解和应用这些技术。 首先,我们要了解加密的基本概念。加密是一种将原始数据(明文)...
标题 "3DES加密解密" 涉及到的是数据安全领域中的一种常见的对称加密算法——三重DES(Triple DES)。此算法是基于原始的DES(Data Encryption Standard)算法,通过三次加密过程增强了其安全性。以下是关于3DES及其...
在IT行业中,加密和解密是信息安全领域的重要组成...总的来说,Java加密解密涉及到信息安全的核心技术,理解并掌握这些知识对于开发安全的应用至关重要。通过学习和实践,开发者可以构建出更安全、更可靠的信息系统。
本文主要关注的是Java中的对称加密算法——AES(Advanced Encryption Standard),它是现代密码学中的一个关键标准,用于替换旧的DES算法。AES是由比利时密码学家Joan Daemen和Vincent Rijmen设计的Rijndael加密法,...
在现代密码学中,它可能与更复杂的算法结合,如公钥基础设施(PKI)和对称加密技术。 在描述中提到的“NULL”可能意味着博主并未提供具体实现或详细解释,但我们可以根据二维易位的基本原理进行深入探讨。首先,...
Java提供了强大的加密库——Java Cryptography Architecture (JCA) 和 Java Cryptography Extension (JCE),它们为开发者提供了丰富的加密算法和工具,如AES(高级加密标准)、RSA(公钥加密算法)、MD5(消息摘要...
在Java中实现背包加密,首先需要理解背包算法的数学基础,然后可以使用Java的BigInteger类来处理大整数,因为背包问题涉及的数值通常很大。博主joe_storm的示例可能包括创建公钥和私钥的生成器、使用公钥加密数据、...
在IT行业中,加密技术是...总的来说,AES+RSA加密解密的实现涉及到了密码学、网络通信和编程语言等多个领域的知识,是确保Web应用数据安全的重要技术手段。正确理解和应用这些技术,对于开发安全的互联网产品至关重要。
它基于Rijndael算法,由两位比利时密码学家Joan Daemen和Vincent Rijmen设计,并在2001年被美国国家标准与技术研究所(NIST)采纳为新的联邦信息处理标准(FIPS-197)。 **AES加密过程**: 1. **预处理**:输入的...
java代码-使用java生成一个固定位数的随机字符串,并加密,和用户密码加密后的密文组合的源代码 ——学习参考资料:仅用于个人学习使用!
在标题"pb和java对称base64加密解密"中,涉及到了两个编程语言——PowerBuilder(pb)和Java,以及一种常用的编码方式——Base64。同时,描述中提到了MD5加密,这又是一种常见的哈希加密算法。下面我们将详细探讨...
3. **哈希函数**:虽然不被视为真正的加密算法,因为它们是不可逆的,但哈希函数在密码学中有着重要的应用,如MD5、SHA系列等。 #### Java中的加密实现 Java提供了一个强大的加密框架——Java Cryptography ...
《基于Misty1算法的加密软件JAVA实现》 在信息安全领域,加密技术是保障数据安全的重要手段。Misty1算法,作为一个高效的分组密码算法,因其设计独特、安全性高而备受关注。本资料主要探讨了如何使用JAVA语言来实现...
总结来说,这个"java加密技术"资源涵盖了基础和高级的加密算法,包括Base64、DES、AES、RSA,以及哈希函数和证书管理。通过学习这些内容,开发者可以更好地理解和应用加密技术,提升系统的安全性。
这个名为"基于java的很强的加密解密算法源码.zip"的压缩包可能包含了多种高级加密算法的实现,例如AES(高级加密标准)、RSA(公钥加密技术)或者DES(数据加密标准)等。让我们深入探讨一下这些加密算法及其在Java...
1. 密码学:密码学是一门研究信息安全的科学,包括加密(将明文转化为密文)和解密(将密文还原为明文)过程。 2. 加密算法:是一种数学方法,用于将明文数据转换为看似随机的密文,以防止未经授权的访问。 二、...
在标签中提到的“密码”是指密码学,它是加密解密的基础理论。密码学研究如何安全地存储和传输信息,包括密码设计、分析以及相关的数学理论。 综上所述,加密解密技术是信息安全的基础,其中DES是一个历史悠久但...
**WEP数据加密与安全性分析(基于RC4)** 无线局域网(WLAN)的安全问题一直是网络技术领域关注的重点,而WEP(Wired ...然而,深入研究这些历史案例对于我们理解密码学的发展和网络安全的重要性仍然是非常有价值的。