编码|摘要|加密

编码(encoding)

编码本质上是信息形式的转化。

通过解码可以还原原始信息。

编码的目的是将消息转化成统一的格式,方便在不同系统之中传输。

例如最常见的ASCII字符编码。由于网络上只能传输二进制数据,任何数据如果想要经由网络传输,就必须先转化成二进制,ASCII 提供了一个将A、B、C等字母转化为二进制的规则。

例子:ASCII, Unicode, URL Encoding, Base64

摘要(digest)

摘要是通过散列函数对信息运算生成的固定大小的数字“指纹”。

相同信息使用同一散列函数生成的摘要总是相同,信息修改后生成的摘要总是与之前不同。

摘要信息不能被还原成原始信息。

摘要的目的是为了校验信息的完整性,保证信息在传输过程中不被篡改。

例如你在网络上需要下载一个非官方论坛软件,但又担心软件被第三方篡改,可以将该软件的md5值和官方下载的md5值进行对比,如果一致,则可放心使用。

例子:MD5, SHA, MAC

加密(encryption)

加密是将明文信息改变为难以读取的密文内容,使之不可读。

加密信息能通过密钥被还原为原始信息。

加密是为了保证信息安全,使得没有正确密钥的人不能获取信息内容。

例如你想给某人发送一封密信,或通过互联网给人发送密码,这些对隐秘性要求比较强的事情,就需要对信息进行加密。

例子:DES, AES, Blowfish, RSA

参考

编码、摘要、加密的区别
http://goldenera.me/2017/02/16/编码、摘要、加密的区别/

欢迎打赏,谢谢支持~