密码学和Base64

密码学基本概念:未加密的报文,原文;加密后的报文,密文

1.古典密码学:包括移位密码、代换密码、仿射密码等

移位密码,代换密码,仿射密码也被统称为单表代换密码:

一旦密钥选定,原文和密文是一一对应的关系;

维吉尼亚密码,希尔密码也被统称为多表代换密码。

2.近代密码学:

数据加密标准(Data Encryption Standard,DES),公开钥匙系统,RSA。

1978年RSA公钥密码体制的出现,成为公钥密码的杰出代表

密码学学科总结:

密码学是研究数据的加密、解密及其变换的学科,涵盖数学、计算机科学、电子与通信学科。密码技术不仅服务于信息的加密和解密,还是身份认证访问控制数字签名等多种安全机制的基础。

密码技术包括密码算法设计密码分析安全协议身份认证消息确认数字签名密钥管理密钥托管等技术,是保护大型网络传输信息安全的唯一实现手段,是保障信息安全的核心技术。它以很小的代价,对信息提供一种强有力的安全保护。

3.现代密码算法:

 密钥与算法分开;密钥算法可以公开,密钥不公开; 密码系统的安全性取决于密钥的保密性

4密码技术的主要用途:

数据保密;认证技术;信息技术的完整性;抗抵赖。

5.密码算法的安全性:

如果破译算法的代价大于加密数据本身的价值,或者在信息的生命期内无法破解,那么你的算法可能是安全的;如果一个算法用可得到的资源不能破解,那么这个算法被称为是计算上安全的。(处理复杂性:计算量,CPU时间;数据复杂性:所需输入数据量;存储复杂性:计算所需的存储空间)

6.Base64

由来:

Email只被允许传送ASCII字符,即一个8位字节的低7位。因此,如果您发送了一封带有非ASCII字符(即字节的最高位是1)的Email通过有“历史问题”的网关时就可能会出现问题!

组成:

(1)将每三个字节作为一组,一共是24个二进制位。

(2)将这24个二进制位分为四组,每个组有6个二进制位

(3)在每组前面加两个00,扩展成32个二进制位,即四个字节。

(4)根据映射表,得到扩展后的每个字节的对应符号,得到Base64的编码值。

(5)填充

Base64并不是加密算法,违反了加密算法公开密钥不公开原则

7.一段字符被Base64编码之后,长度增加了还是减少了,增长或减少了多少?

答;增加,大约增加了1/3。Base64将3个字节转变为4个字节,因此,编码后的代码量约比编码前的代码量多了1/3。之所以说是“约”,是因为如果代码量正好是3的整数倍,那么自然是多了1/3。

(1)如果beforeEncode.length()是3的整数倍,那么长度为 (beforeEncode.length()/3)*4
(2)如果beforeEncode.length()不是3的整数倍,那么长度(beforeEncode.length()/3+1)*4

Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,Base64加密方式是将原文经过简单的字符转换,转换成不容易被肉眼看出的字符编码,Base64加密常用在HTTP环境下传递较长的标识信息确保不破坏HTTP的请求格式。

Base64的加密原理是将3个8位二进制转换为4个6位二进制,不足6位时高位补0 ,以确保其值为64个可能,这就是Base64来源。

大等号一定用作后缀,且数目一定是0个、1个或2个。这是因为如果原文长度不能被3整除,base64要在后面添加\0凑齐3n位。为了正确还原,添加了几个\0就加上几个等号。显然添加等号的数目只能是0、1或2;严格来说base64不能算是一种加密,只能说是编码转换。使用base64的初衷。是为了方便把含有不可见字符串的信息用可见字符串表示出来,以便复制粘贴(字符‘0’:char c=‘0’;它的ASCII码实际上是48。内存中存放表示:00110000

字符‘\0’:ASCII码为0,表示一个字符串结束的标志。这是转义字符。

整数0:ASCII,码为0,字符表示为空字符,NULL;数值表示为0;内存中表示为00000000

总结:一般情况下,一个合法的Base64,有着以下特征:

(1)字符串的长度为4的整数倍。

(2)字符串的符号取值只能在A-Z, a-z, 0-9, +, /, =共计65个字符中,且=如果出现就必须在结尾出现。

 

    原文作者:维吉尼亚加密问题
    原文地址: https://blog.csdn.net/hqy1719239337/article/details/88579349
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞