Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >探秘加密算法

探秘加密算法

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

前言

应工信部关于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 删除。

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
加密算法介绍
数字签名,简单来说就是通过提供 可鉴别 的 数字信息 验证 自身身份 的一种方式。一套 数字签名 通常定义两种 互补 的运算,一个用于 签名,另一个用于 验证。分别由 发送者 持有能够 代表自己身份 的 私钥 (私钥不可泄露),由 接受者 持有与私钥对应的 公钥 ,能够在 接受 到来自发送者信息时用于 验证 其身份。
郭顺发
2023/07/17
3140
通信加密算法
加密算法通常分为对称性加密算法和非对称性加密算法。对于对称性加密算法,信息接收双方都需事先知道密匙和加解密算法且其密匙是相同的,之后便是对数据进行加解密了。
全栈程序员站长
2022/09/01
1.9K0
通信加密算法
请看,常见的加密算法及详解都在这里!
加密算法,是现在每个软件项目里必须用到的内容。广泛应用在包括了用户登入、数字签名、数据传输等多个场合。那大家都知道那些呢?今天我把常见的加密算法全部整理在这里,供大家学习参考。
攻城狮的那点事
2019/12/10
1.5K0
常见加密算法简析
说到加密算法,开发人员基本都不会陌生。我们平常开发中接触形形色色的加密算法,简单来说分为对称加密算法与非对称加密算法以及散列算法。算法的区别在哪呢?我们可以这么来理解三种算法的区别:
创译科技
2019/06/19
1.4K0
常见加密算法简析
说一下你常用的加密算法
加密算法我们整体可以分为:可逆加密和不可逆加密,可逆加密又可以分为:对称加密和非对称加密。
Java旅途
2020/07/23
1.9K0
2018-10-11 对称加密、非对称加密、Hash算法看完这篇文章加解密就别蒙了散列函数 加密算法
http://hongyitong.github.io/2016/07/18/%E5%AF%B9%E7%A7%B0%E5%8A%A0%E5%AF%86%E3%80%81%E9%9D%9E%E5%AF%B9%E7%A7%B0%E5%8A%A0%E5%AF%86%E3%80%81Hash%E7%AE%97%E6%B3%95/
Albert陈凯
2018/10/12
1.4K0
android开发之&数据的加密解密
加密技术是最常用的安全保密手段,利用技术手段把重要的数据变为乱码(加密)传送,到达目的地后再用相同或不同的手段还原(解密)。加密技术包括两个元素:算法和密钥。算法是将普通的信息或者可以理解的信息与一串数字(密钥)结合,产生不可理解的密文的步骤,密钥是用来对数据进行编码和解密的一种算法。在安全保密中,可通过适当的钥加密技术和管理机制来保证网络的信息通信安全。
玖柒的小窝
2021/12/06
1.1K0
加密算法的种类有哪些?
这些加密算法在数据安全、数据传输、数据认证等领域有着广泛的应用。对称加密算法和非对称加密算法主要用于数据加密和保护数据安全性,而哈希算法主要用于数据完整性验证和数字签名等应用场景。
用户11163528
2024/12/06
1440
数据安全及各种加密算法对比
平时开发中不仅会遇到各种需要保护用户隐私的情况,而且还有可能需要对公司核心数据进行保护,这时候加密隐私数据就成为了必要。然而市场上存在着各种各样的抓包工具及解密算法,甚至一些公司有专门的逆向部门,这就加大了数据安全的风险,本文将通过以下几个方面对各种加密算法进行分析对比: Base64编码(基础) 单项散列函数 MD5、SHA1、SHA256、SHA512等 消息认证码 HMAC-MD5、HMAC-SHA1 对称加密 DES 3DES AES(高级加密标准) 非对称加密 RSA 数字签名 证书 通常我们对
czjwarrior
2018/05/28
2.7K0
PHP的几个常用加密函数
在php的开发过程中,常常需要对部分数据(如用户密码)进行加密 一、加密类型: 1.单向散列加密   就是把任意长度的信息进行散列计算,得到固定长度的输出,这个散列计算过程是单向的,即不能对固定长度的输出信息进行计算从而得到输入信息。 (1)特征:雪崩效应、定长输出和不可逆。 (2)作用是:确保数据的完整性。 (3)加密算法:md5(标准密钥长度128位)、sha1(标准密钥长度160位)、md4、CRC-32 2.对称散列加密   对称加密是指加密和解密是使用同一个密钥,或者可以互相推算。 (1)加密方和
joshua317
2018/04/16
1.7K0
加密算法概述:分类与常见算法
加密算法可以根据不同的标准进行分类,比如根据密钥的使用方式、加密和解密过程是否可逆等。以下是一些主要的分类方式:
公众号:码到三十五
2024/05/24
1K0
加密算法概述:分类与常见算法
常用加密算法解析
今天介绍下工作当中常用的加密算法、分类、应用。 1、对称加密算法 所谓对称,就是采用这种加密方法的双方使用方式用同样的密钥进行加密和解密。密钥是控制加密及解密过程的指令。算法是一组规则,规定如何进行加密和解密。 分类 常用的算法有:DES、3DES、AES等。 DES 全称为Data Encryption Standard,即数据加密标准,是一种使用密钥加密的块算法,1977年被美国联邦政府的国家标准局确定为联邦资料处理标准(FIPS),并授权在非密级政府通信中使用,随后该算法在国际上广泛流传开来。 3
Java技术栈
2018/03/29
3.2K0
网络安全&密码学—python中的各种加密算法
数据加密是一种保护数据安全的技术,通过将数据(明文)转换为不易被未经授权的人理解的形式(密文),以防止数据泄露、篡改或滥用。加密后的数据(密文)可以通过解密过程恢复成原始数据(明文)。数据加密的核心是密码学,它是研究密码系统或通信安全的一门学科,包括密码编码学和密码分析学。
小羽网安
2024/07/02
5760
网络安全&密码学—python中的各种加密算法
周末给女友讲了遍加密算法,没想到...
哈哈哈,其实只是周末看了小舞而已啦,铁铁们没追更的,赶快去补一下这集,特效炸裂。好了,不扯了,进入正题,最近做的项目,涉及到一些加密算法的选择,小羽在这里顺便也给大家做个总结,一起加深对加密的相关认识。
浅羽技术
2020/12/17
5370
周末给女友讲了遍加密算法,没想到...
对称加密与非对称加密
对称加密算法中对于数据的加密与解密使用同一密钥,即使用相同的密码对内容进行加密解密。
WindRunnerMax
2020/08/27
1.6K0
敲一天代码了,轻松下吧,精彩 !看人潮如海
一边听歌,一遍来看几个算法 一、数字摘要算法 数字摘要也称为消息摘要,它是一个唯一对应一个消息或文本的固定长度的值,它由一个单向 Hash 函数对消息进行计算而产生。如果消息在传递的途中改变了,接收
码神联盟
2018/04/02
6960
敲一天代码了,轻松下吧,精彩 !看人潮如海
Android常用加密方式
加密技术是最常用的安全保密手段,利用技术手段把重要的数据变为乱码(加密)传送,到达目的地后再用相同或不同的手段还原(解密)。加密技术包括两个元素:算法和密钥。算法是将普通的信息或者可以理解的信息与一串数字(密钥)结合,产生不可理解的密文的步骤,密钥是用来对数据进行编码和解密的一种算法。在安全保密中,可通过适当的钥加密技术和管理机制来保证网络的信息通信安全。
全栈程序员站长
2022/08/29
1.5K0
Android常用加密方式
Java - 深入理解加密解密和签名算法
Java应用接口安全性问题可能来源于多个方面,包括但不限于数据加密、身份验证、访问控制、输入验证等。下面我会对这些问题进行详细分析,并提供相应的解决方案和最佳实践。
小小工匠
2024/05/25
4420
Java - 深入理解加密解密和签名算法
对称加密算法与非对称加密算法的优缺点
对称加密指的就是加密和解密使用同一个秘钥,所以叫做对称加密。对称加密只有一个秘钥,作为私钥。
MavenTalker
2019/07/19
3.1K0
Java加密解密介绍
常用的加密算法总体可以分为两类:单项加密和双向加密,双向加密又分为对称加密和非对称加密,因此主要分析下面三种加密算法:
全栈程序员站长
2022/08/04
1.6K0
相关推荐
加密算法介绍
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档