加密算法(一)

加密算法初探

参考:https://blog.csdn.net/qq_31878855/article/details/69396791

在这里插入图片描述

加密算法分类

常见的加密算法可以分成三类:对称加密算法、非对称加密算法和Hash算法。

  • 对称加密算法
    加密和解密用的是同一串密钥,如果密钥发生改变就必须一起改变。
  • 非对称加密算法
    非对称密钥就是加密和解密所用到的密钥不一样,也称为公私钥加密。公钥用来加密,私钥用来解密。单向加密的话,加密方持有公钥,解密方持有私钥。双向加密的话,两方交换公钥即可。这可真巧妙,就是加密有点慢。
  • Hash算法
    Hash算法特别的地方在于它是一种单向算法,用户可以通过Hash算法对目标信息生成一段特定长度的唯一的Hash值,却不能通过这个Hash值重新获得目标信息。就是说你可以根据源数据推出一串唯一的数字,但是根据这串数字是没有办法推出源数据的。

加密算法的选择

我们应该根据自己的使用特点来确定,由于非对称加密算法的运行速度比对称加密算法的速度慢很多,当我们需要加密大量的数据时,建议采用对称加密算法,提高加解密速度。

对称加密算法不能实现签名,因此签名只能非对称算法。

由于对称加密算法的密钥管理是一个复杂的过程,密钥的管理直接决定着他的安全性,因此当数据量很小时,我们可以考虑采用非对称加密算法。

在实际的操作过程中,我们通常采用的方式是:采用非对称加密算法管理对称算法的密钥,然后用对称加密算法加密数据,这样我们就集成了两类加密算法的优点,既实现了加密速度快的优点,又实现了安全方便管理密钥的优点。

如果在选定了加密算法后,那采用多少位的密钥呢?一般来说,密钥越长,运行的速度就越慢,应该根据的我们实际需要的安全级别来选择,一般来说,RSA建议采用1024位的数字,ECC建议采用160位,AES采用128为即可。

猜你喜欢

转载自blog.csdn.net/lblmlms/article/details/108800688