flyingghost
2018-12-18 12:19:42 +08:00
来来来,捋一下(我理解的,非常直白的)定义:target = f(source)
可逆:从 target 可以反推出 source。例如压缩软件、加密算法等。hash 算法不是可逆的,理论上一个 hash 对应无数个 source。
编码:用一种规则 f 把表达 A 替换成表达 B。例如翻译软件、GBK2UTF8、Base64 等。一般来说编码总是可逆的,唯一需要的知识只是规则 f 本身而已。
加密:target = f(source,secret),加入了 secret 并确保在不知道 secret 的前提下无法(或者代价超大)从 target 反推 source。
对称 /非对称:加解密用的 secret 是相同的,叫对称。不同,叫非对称。
编码 vs 加密:古代经典密码学语境下,由于编码规则的复杂和不可知(就像一个小学生根本不知道 base64 这一开放普及标准),经常把编码也称作加密。但在现代计算机语境下,大家都区分开这两种说法了。
以上都是直白表达。更抽象更准确的可以翻 wiki,都有定义。
讨论问题先厘清概念。概念认识有分歧的基础上还大放厥词骂人沙雕的,真是过于自信了。