前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >探秘加密算法

探秘加密算法

作者头像
用户5521279
发布2020-01-02 23:02:16
1.3K0
发布2020-01-02 23:02:16
举报
文章被收录于专栏:搜狗测试搜狗测试

前言

应工信部关于APP数据安全的要求,项目中涉及到用户个人隐私的信息如手机号码、验证码、用户userID等都在信息传输和本地存储时都需要进行加密处理。 信息加密是前后端开发都经常需要使用到的技术,应用场景涉及用户登入、交易、信息通讯、oauth 等等,不同的应用场景也会需要使用到不同的加密算法。 下面小编给大家分享一些常见的加密算法。

加密算法介绍

加密和解密 数据加密的基本过程,就是对原来为明文的文件或数据按某种算法进行处理,使其成为不可读的一段代码,通常称为“密文”。通过这样的途径,来达到保护数据不被非法人窃取、阅读的目的。 加密的逆过程为解密,即将该编码信息转化为其原来数据的过程。 加密算法应用 在数据安全领域,利用加密算法来对通信的过程进行加密是一种常见的手段。利用该手段能够保障数据安全通信的三个目标: 1)数据的保密性,防止用户的数据被窃取或泄露; 2)保证数据的完整性,防止用户传输的数据被篡改; 3)通信双方的身份确认,确保数据来源与合法的用户;

常见加密算法

加密算法分类 根据加密结果是否可以被解密,算法可以分为可逆加密和不可逆加密(单向加密),从这个意义上来说,单向加密只能称之为加密算法而不是加解密算法。对于可逆加密,又可以根据密钥的的对称性分为对称加密和非对称加密。 因此,常见的加密算法类型大体可以分为三类:对称加密、非对称加密、单向加密。其中对称加密算法的加密与解密密钥相同,非对称加密算法的加密密钥与解密密钥不同。 下面对这三类加密算法分别进行介绍。 1. 对称加密 对称加密算法介绍 对称加密算法,又称为共享密钥加密算法。在对称加密算法中,使用的密钥只有一个,发送和接收双方都使用这个密钥对数据进行加密和解密。这就要求加密和解密方事先都必须知道加密的密钥。

常见的对称加密算法 DES:分组式加密算法,以64位为分组对数据加密,加解密使用同一个算法。 3DES:三重数据加密算法,对每个数据块应用三次DES加密算法。 AES:高级加密标准算法,是美国联邦政府采用的一种区块加密标准,用于替代原先的DES,目前已被广泛应用。 1)AES/DES/3DES算法 AES、DES、3DES 都是对称的块加密算法,加解密的过程是可逆的。 DES加密算法是一种分组密码,以64位为分组对数据加密,它的密钥长度是56位,加密解密用同一算法。 DES加密算法是对密钥进行保密而公开算法(包括加密和解密算法)。这样,只有掌握了和发送方相同密钥的人才能解读由DES加密算法加密的密文数据。因此,破译DES加密算法实际上就是搜索密钥的编码。对于56位长度的密钥来说,如果用穷举法来进行搜索的话,其运算次数为2 ^ 56 次。 2)3DES算法 3DES算法是基于DES 的对称算法,对一块数据用三个不同的密钥进行三次加密,强度更高。 3)AES算法 AES加密算法是密码学中的高级加密标准,该加密算法采用对称分组密码体制,密钥长度的最少支持为128 位、192 位、256 位,分组长度128 位,算法应易于各种硬件和软件实现。这种加密算法是美国联邦政府采用的区块加密标准。 AES 本身就是为了取代DES的,AES具有更好的安全性、效率和灵活性。 对称算法特点 密钥管理:比较难,不适合互联网,一般用于内部系统; 安全性:中; 加密速度:快好几个数量级 (软件加解密速度至少快 100 倍,每秒可以加解密数 M 比特数据),适合大数据量的加解密处理 2. 非对称加密 非对称加密算法介绍 非对称加密算法,又称为公开密钥加密算法。它需要两个密钥,一个称为公开密钥 (public key),即公钥,另一个称为私有密钥 (private key),即私钥。因为加密和解密使用的是两个不同的密钥,所以这种算法称为非对称加密算法。

公钥和私钥是成对存在,如果使用公钥对数据进行加密,只有用对应的私钥才能进行解密。如果使用私钥对数据 进行加密,只有用对应的公钥才能进行解密。 举个例子,甲方生成一对密钥并将其中的一把作为公钥向其它人公开,得到该公钥的 乙方使用该密钥对机密信息 进行加密后再发送给甲方,甲方再使用自己保存的另一把专用密钥 (私钥),对加密后的信息进行解密。 常见的非对称加密算法 常见的非对称加密算法有RSA、DSA、ECC 等。 1)RSA算法 RSA 加密算法是目前最有影响力的公钥加密算法,并且被普遍认为是目前最优秀的公钥方案之一。RSA是第一个能同时用于加密和数字签名的算法,它能够抵抗到目前为止已知的所有密码攻击,已被ISO推荐为公钥数据加密标准。 RSA加密算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但想要对其乘积进行 因式分解却极其困难,因此可以将乘积公开作为加密密钥。 2)ECC算法 ECC 也是一种非对称加密算法,主要优势是在某些情况下,它比其他的方法使用更小的密钥,比如RSA加密算法,提供相当的或更高等级的安全级别。不过一个缺点是加密和解密操作的实现比其他机制时间长 (相比 RSA算法,该算法对CPU消耗严重)。 非对称算法特点 密钥管理:密钥容易管理; 安全性:高; 加密速度:比较慢,适合小数据量加解密或数据签名; 3. 单向加密 单向加密算法介绍 单向加密的结果是不可以被解密的,因此,单向加密的主要用途并不是传统意义上的加解密工作,而是用于提取数据指纹,验证数据的完整性。 发送者将要传输的数据通过单向加密算法进行一次单向加密,得到数据指纹。当接收方收到数据之后,使用相同的单向加密算法也进行一次单向加密,如果得到的数据指纹相同,则可以认为数据在传输过程中没有损坏。若不一致,说明传输过程中数据丢失了。 单向加密算法只能用于对数据的加密,无法被解密,其特点为定长输出、雪崩效应。

常见的单向加密算法 常见的算法包括:MD5、SHA1、SHA224等。 1)MD5算法 MD5 用的是 哈希函数,它的典型应用是对一段信息产生信息摘要,以 防止被篡改。严格来说,MD5 不是一种加密算法而是摘要算法。无论是多长的输入,MD5 都会输出长度为 128bits 的一个串 (通常用 16 进制 表示为 32 个字符)。 2)SHA1算法 SHA1 是和 MD5 一样流行的消息摘要算法,然而SHA1比MD5的安全性更强。对于长度小于2 ^ 64位的消息,SHA1会产生一个160 位的消息摘要。基于MD5、SHA1 的信息摘要特性以及不可逆 (一般而言),可以被应用在检查文件完整性以及数字签名等场景。 MD5和SHA1的区别:MD5结果是128位摘要,SHa1是160位摘要。那么MD5的速度更快,而SHA1的强度更高。 单向加密算法应用 以MD5为例进行说明,主要用途有:验证消息完整性,安全访问认证,数据签名。 消息完整性:由于每一份数据生成的MD5值不一样,因此发送数据时可以将数据和其MD5值一起发送,然后就可以用MD5验证数据是否丢失、修改。 安全访问认证:这是使用了算法的不可逆性质,(就是无法从MD5值中恢复原数据)对账号登陆的密码进行MD5运算然后保存,这样可以保证除了用户之外,即使数据库管理人员都无法得知用户的密码。 数字签名:这是结合非对称加密算法和CA证书的一种使用场景。 一般破解方法:字典法,就是将常用密码生成MD5值字典,然后反向查找达到破解目的,因此建议使用强密码。

文章参考

https://juejin.im/post/5b48b0d7e51d4519962ea383#heading-17 https://www.jianshu.com/p/ce3893a7be09

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-12-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 搜狗测试 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 加密算法介绍
  • 常见加密算法
  • 文章参考
相关产品与服务
验证码
腾讯云新一代行为验证码(Captcha),基于十道安全栅栏, 为网页、App、小程序开发者打造立体、全面的人机验证。最大程度保护注册登录、活动秒杀、点赞发帖、数据保护等各大场景下业务安全的同时,提供更精细化的用户体验。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档