加解密简介

加解密相关算法介绍

base64

作用和目的

Base64是一种将二进制数据转换为字符串表示的格式转换算法,其最初是为了解决电子邮件中无法直接使用非ASCII字符的问题。一段数据先经过Base64编码为ASCII字符串后,可以在接收端,通过Base64解码还原为原数据后,而无需担心二进制兼容问题,避免数据的歧义和失真。

由于base64的易存储性和易传输性,常常将其用到加密数据的存储和传输场景。

使用Base64编码后的字符串通过索引表可以直接还原为明文,因此严格意义上讲base64并不是一种加密方法。

实现方式

base64 编码是基于64个可打印的字符来表示二进制的数据的一种方法,具体来讲是下面这 64 个字符。

1
['A', 'B', 'C', ... 'a', 'b', 'c', ... '0', '1', ... '+', '/'] (26 + 26 + 10 + 2 = 64)
编码过程中,将待编码二进制数据按照 3 个字节进行分组(6 和 8 的最小公倍数是24),24bit 的原始数据对应着 4 个base64 编码(2 的 6 次方=64,即每 6bit 对应一个base64字符),即将3 字节的原始数据映射为4 个base64 字符。

参考:
密码学 | Base64是加密算法吗?
今天学到了什么|终于搞明白base64编码了

sha-2

作用

SHA-2 (Secure Hash Algorithm 2), 安全散列算法2

sha算法的作用就提现在名字上,其是一种hash 算法。sha-2具有不可逆行,即无法通过哈希序列获得原始编码明文。

对称加密和非对称加密

对称加密是指加解密双方要用同样的密钥;而非对称加密就是指加解密双方所用密钥不同,在非对称加密中,一个密钥对分为公钥和私钥,公钥用来加密,私钥用来解密。

假设通信双方为小明和小红,小明要发数据给小红,通过非对称加密的通信过程大体如下: 1. 数据接收方小红生成密钥对 2. 数据接收方小红将公钥发送给小明 3. 小明通过公钥对数据加密后将数据发送给小红 4. 小红通过本地私钥对加密数据进行解密

因为公钥只能用来加密,因此公钥即使在网络传输过程中被劫持盗用,也无法将实际发送的数据的进行破解。

计算量上非对称加密要远高于对称加密,因此常常将对称加密的密钥,通过非对称加密方式进行传输,以保证密钥的安全性。

RSA

RSA 三个发明人的名字缩写,一种非对称加密算法

AES

AES(Advanced Encryption Standard), 一种对称加密算法

硬件加解密

加解密都需要很大的计算量,很多处理器上都有专用的硬件用来进行加解密,可以通过使用cat /proc/cpuinfo命令查看打印页中Features项是否包含aes sha1 sha2来判断平台是否支持硬解。


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!