美文网首页
加密算法

加密算法

作者: LilacZiyun | 来源:发表于2017-09-11 14:40 被阅读47次

对称加密算法:

对称加密算法用来对敏感数据等信息进行加密,常用的算法包括:

  • DES(Data Encryption Standard):数据加密标准,速度较快,适用于加密大量数据的场合。
  • 3DES(Triple DES):是基于DES,对一块数据用三个不同的密钥进行三次加密,强度更高。
  • AES(Advanced Encryption Standard):高级加密标准,是下一代的加密算法标准,速度快,安全级别高;

非对称算法:

  • RSA:由 RSA 公司发明,是一个支持变长密钥的公共密钥算法,需要加密的文件块的长度也是可变的;
  • DSA(Digital Signature Algorithm):数字签名算法,是一种标准的 DSS(数字签名标准);
  • ECC(Elliptic Curves Cryptography):椭圆曲线密码编码学。

散列算法:

散列是信息的提炼,通常其长度要比信息小得多,且为一个固定长度。加密性强的散列一定是不可逆的,这就意味着通过散列结果,无法推出任何部分的原始信息。

单向散列函数一般用于产生消息摘要,密钥加密等,常见的有:

  • MD5(Message Digest Algorithm 5):是RSA数据安全公司开发的一种单向散列算法,非可逆,相同的明文产生相同的密文。
  • SHA(Secure Hash Algorithm):可以对任意长度的数据运算生成一个160位的数值;

加密算法的选择:

由于非对称加密算法的运行速度比对称加密算法的速度慢很多,当我们需要加密大量的数据时,建议采用对称加密算法,提高加解密速度。对称加密算法不能实现签名,因此签名只能非对称算法。

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

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

那采用多少位的密钥呢? RSA建议采用1024位的数字,ECC建议采用160位,AES采用128为即可。

Android 数据加密传输:

假设要传输的数据是 msg,那么首先对 msg 进行 MD5 编码,获得 sign 值,然后将 msg 采用对称/非对称加密算法进行加密形成密文 msg*,然后将密文 msg* 和签名 sign 传输给服务器;服务器获取到数据后先将 msg* 解密,得到原始的 msg,然后将获取的 msg 进行 MD5 编码,得到编码值,与收到的 sign 值进行比较,相等表示未被篡改。

相关文章

网友评论

      本文标题:加密算法

      本文链接:https://www.haomeiwen.com/subject/oncfsxtx.html