数据传输过程中的加密是程序开发中避不开的一个问题。如何更科学更合理的使用加密算法也就成了一个开发人员必须了解的知识点,本文就该问题做简单的介绍。
注意:这些算法的详细知识不属于本文的范围。本文主要是根据其特点,说明如何在开发中合理使用这些算法。
常见的加密算法:
加密算法有很多,这里只列出开发中常用的几种。
单向散列哈希算法
代表:
MD5、SHA(128、256)系列
简介:
严格来讲这不算是一种加密算法,应该叫做 信息摘要算法 。也是目前开发中应用非常广的算法。
散列函数(英语:Hash function)又称 散列算法、哈希函数,是一种从任何一种数据中创建小的数字“指纹”的方法。散列函数把消息或数据压缩成摘要,使得数据量变小,将数据的格式固定下来。该函数将数据打乱混合,重新创建一个叫做 散列值(hash values,hash codes,hash sums,或 hashes)的指纹。散列值通常用一个短的随机字母和数字组成的字符串来代表。好的散列函数在输入域中很少出现 散列冲突 。在 散列表 和 数据处理 中,不抑制冲突来区别数据,会使得 数据库记录 更难找到。
单向散列函数以下几个特点,决定了其有很高的使用价值。
- 固定输入得到固定输出,且出现不同输入得到相同输出的概率极低。
- 单向性。就是根据算法,理论上不能从计算之后的散列值逆推出原始明文。
- 无论输入数据的长度是多少,得到的输出值是固定的。M