加密、编码和散列是类似的术语,经常相互混淆。因此,让我们讨论每个术语以及它们之间的不同之处。
编码:
在编码方法中,数据从一种形式转换为另一种形式。编码的主要目的是将数据转换为大多数系统可读或任何外部进程都可以使用的形式。
它不能用于保护数据,使用各种公开可用的算法进行编码。
编码可用于减小音频和视频文件的大小。每种音频和视频文件格式都有相应的编解码器(codec)程序,用于将其编码为适当的格式,然后进行解码以进行播放。
示例:ASCII、BASE64、UNICODE
加密:
使用加密算法对消息进行编码的编码技术中的加密,只有经过授权的人员才能访问消息或信息。
它是一种特殊类型的编码,用于传输私人数据,例如通过互联网发送用户名和密码的组合以进行电子邮件登录。
在加密中,要加密的数据(称为纯文本)使用加密算法(如 AES 加密或 RSA 加密)使用称为密码的密钥进行转换。加密后的数据称为密文,最后,目标接收者可以使用密钥将其转换回纯文本。
有两种类型的加密算法——对称加密和非对称加密。
在对称加密的情况下,数据是在相同密钥的帮助下编码和解码的,例如 AES 加密算法,但在非对称加密算法的情况下,数据是在两个密钥的帮助下加密的,例如公钥和私钥。 RSA算法
哈希:
在散列中,使用一些散列函数将数据转换为散列,该函数可以是从字符串或文本生成的任何数字。各种散列算法有 MD5、SHA256。散列后的数据是不可逆的。
哈希函数可以是用于将任意大小的数据映射到固定大小的数据的任何函数。数据结构哈希表用于存储数据。
例如:当您通过 StackOverflow 通过 WhatsApp 发送图片和文本消息(在问题中发帖)时,为了提高效率,图像被发送到不同的服务器,文本被发送到不同的服务器。因此,为了验证图像在互联网上的数据传输之间没有被篡改,可以使用像 MD5 这样的散列算法。
散列的另一个目的是验证登录各种网站的密码,如图所示。
参考 :
1) 哈希函数
2) 加密
3) 编码