天天看点

简述常用加解密算法

(作为一个刚刚毕业的菜菜程序猿,首次更新博客,欢迎大家多多批评指正)

简述常用加解密算法

一、产生的原因

为确保数据在网络上传输的安全性。

二、使用场景

1、RSA加解密适用场景 RSA主要用于加密和签名,加密过程中,公钥用于加密,私钥用于解密;签名过程中,私钥用于加密,公钥用于解密.

2、MD5加密适用场景 MD5算法主要用于加密应用软件登录密码、进行数字签名、对文件完整性进行验证等方面.

3、通常情况下,对于大数据的加密,使用AES或者DES等对称加密算法对数据进行加密,使用RSA等非对称加密算法对AES或DES的秘钥进行加密.

三、常用算法

1、古典加密算法

古典密码(classical cryptography)编码方式归根结底主要就是置换和代换.

置换:已知明文字母集S={a,b},置换后的密码可以是S’={b,a},即将明文字符位置发生变化后形成的密码就是置换密码.

代换:已知明文集S1={a,b,c},S2={1,2,3},将S1中的字符代换为S2中对应位置的字符,那么S1将代换后的密码为S’={1,2,3},即将明文信息替换为另一个字符集中的字符形成的密码称为代换密码.

古典密码因其加密过程过于简单:加密过程本质就是从明文字母表到密文字母表的一一映射,这样很不安全,在实际的应用中基本不使用.

2、DES加密算法

DES加密算法是一个利用64位的密钥对以64位为单位的块数据进行加解密。 对称加密算法是应用最早的加密算法,技术成熟,在进行对称加密的过程中,发送方将明文信息和加密秘钥一起进行加密处理后,将生成的密文信息发送给接收方,接收方收到密文后,使用已知的秘钥对其进行解密,才能得到正确的明文信息.

3、AES加密算法

AES即高级加密标准,是新一代的数据加密标准,是对DES的升级,加密效果更好,破解难度更大,安全性更好. AES是常用的分组(128位)、对称加密算法,采用相同秘钥对明文进行加解密,他的速度比RSA算法要快很多,一般在数据加解密和文件加解密过程中使用。

4、RSA加密算法

RSA是目前最流行的非对称加解密算法之一,也被称为公钥加密算法,即加密秘钥和解密秘钥是不相同的.

使用RSA加密的时候,会产生一对密钥对,公钥和私钥,公钥是大家都可以知道的,私钥是只有信息的发送方和接收方知道的,其他任何第三方都不能知道的,即必须保证私钥的私有性和安全性.通常情况下,当数据在网络中传输时,私钥是不会和数据一起传送,这样就减少了秘钥泄露的可能性.

通常情况下,对于大数据的加密,采用DES或AES进行加密,然后使用RSA对加密秘钥进行加密,数据发送之后,接收方使用RSA解密秘钥对DES或AES的秘钥进行解密,然后用解密出来的秘钥对数据进行解密.

5、哈希加密算法

5.1 MD5加密算法

MD5(message-digest algorithm 5 )算法模型是一个安全的散列算法,输入两个不同的信息一般情况下不会得到相同的输出值,即两个不同的明文信息经过MD5加密之后不会得到相同的密文;反过来,根据密文信息,不能得到原始的明文信息,即MD5加密过程不可逆. 如果要破解MD5加密的密文,目前没有现成的算法,只能通过“撞库”.

MD5加密特点 ①长度固定;②计算简单;③抗修改性;④不可逆性.

5.2 SHA加密算法

SHA1和SHA2,常用的有SHA512、SHA256算法等,其中SHA256与MD5类似,但是安全性更高。

6、其他加密算法

椭圆加密算法;

四、总结

加解密的实质就是将我们需要在网络传输的数据转换为别人不能直观或简单破译的字符串,以确保我们的数据不被别人篡改、截获以及泄漏的过程。俗话说,你想要得到一些东西那么你一定会为之付出一定的代价,加解密也一样,你如果想要确保数据的安全,那么你就得付出诸如:接口因为需要加密导致响应过慢等代价。

从安全性来说,RSA加密算法是目前认为比较安全的算法,比他更安全的还有椭圆加密算法等,但是他们的运行速度通常较慢,一般情况下,我们只会使用它们来对AES或者DES的加密秘钥进行加密。实际运用过程中,需要根据实际情况,选择符合实际的加解密算法,平衡好安全性和高效性之间的关系。

继续阅读