所有产品

算法相关汇总_加密

  数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关。

  算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。不同的算法可能用不同的时间、空间或效率来完成同样的任务。一个算法的优劣可以用空间复杂度与时间复杂度来衡量。

  常见的加密算法可以分为对称加密、非对称加密以及单向加密(哈希算法),这些加密算法大量运用在各种系统和应用中,最常见的是我们访问使用HTTPS的网站流量是经过加密的,密码保存在网站中大多也是经过MD5或者DES加密,而通常不推荐使用可逆的加密算法来加密保存用户登录密码,因为在拿到密钥的情况下可对数据进行还原。

  MD5(Message-Digest Algorithm 5,信息摘要算法第5版)是广泛使用的散列算法(也称“哈希算法”或“杂凑算法”)之一,采用带密钥的运算时,可同时用于消息完整性检测和消息源。它是由MD2、MD3和MD4版本一路发展而来,是Ronald Rivest 于1991年设计发布的,用于取代MD4。

  SHA(Secure Hash Algorithm,安全哈希算法)主要适用于数字签名,也是一种不可逆的MAC算法,但比MD5算法更加安全。目前它有三种主要的版本,即SHA-0、SHA-1、SHA-2和SHA-3。其中SHA-2和SHA-3版本中又有多种不同子分类,如在SHA-2中又根据它们最终所生成的摘要消息长度的不同又包括SHA-224、SHA-256、SHA-384和SHA-512等几种。

  SM3杂凑算法是中国国家管理局于2010年公布的中国商用杂凑算法标准(其实也是哈希算法,或者单向散列算法)。该算法由王小云等人设计,消息分组为512位,经过填充和迭代压缩,生成256位的杂凑值。总体来说,SM3算法的压缩与SHA-256的压缩具有相似结构,但SM3杂凑算法的设计更加复杂。

  AES(Advanced Encryption Standard,高级加密标准)是美国国家标准与技术研究院(NIST)在2001年建立了电子数据的加密规范。它是一种分组加密标准,每个加密数据块大小固定为128位(16个字节),最终生成的加密密钥长度有128位、192位和256位这三种。

  DES(Data Encryption Standard,数据加密标准)是1972年美国IBM公司研制的对称密码体制(加密和解密使用相同的密钥)加密算法,1977年被美国联邦政府的国家标准局确定为联邦资料处理标准(FIPS),并授权在非密级政府通信中使用,随后该算法在国际上广泛流传开来。与AES算法相比,DES的数据块大小为8个字节,而AES的数据块大小为16个字节。DES的密钥长度是64位(其中8位用于校验),而AES的密钥长度是128位(AES算法比DES算法更安全)。DES加密算法的块大小及密钥长度都不能满足现在的安全需求了,和记app,所以现在比较少使用这种加密算法,而是使用像AES或者3DES之类更高级的加密算法。返回搜狐,查看更多