关于加密技术分类的说明(密码学基础)
一、加密种类:
1、不可逆加密:【Hash算法/散列算法/摘要算法】
Hash:一般翻译做散列,或音译为哈希,所以【哈希算法】也叫【散列算法】,它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(这个过程叫“计算内容摘要”),所以也叫【摘要算法】。
但要注意:摘要算法不是加密算法,不能用于加密(因为无法通过摘要反推明文),只能用于防篡改,但是它的单向计算特性决定了可以在不存储明文口令的情况下验证用户口令。(由于其单向运算,具有一定的不可逆性,所以成为加密算法中的一个构成部分,完整的加密机制不能仅依赖 HASH 算法。)
一旦加密就不能反向解密得到密码原文,一般用来加密用户密码,app的服务器端数据库里一般存储的也都是加密后的用户密码。
在数据传输的过程中,首先把密码类数据经过哈希算法(比如MD5)加密,然后再在外面使用可逆的加密方式加密一次,这样在数据传输的过程中,即便数据被截获了,但是想要完全破解,还是很难的。
哈希算法特别的地方在于它是一种单向算法,用户可以通过哈希算法对目标信息生成一段特定长度的唯一的Hash值,却不能通过这个Hash值重新获得目标信息。因此Hash算法常用在不可还原的密码存储、信息完整性校验等。
用途:一般用于效验下载文件正确性,一般在网站上下载文件都能见到;存储用户敏感信息,如密码、 卡号等不可解密的信息。
常见的不可逆加密算法有:MD5、SHA、HMAC
SHA家族有五个算法,分别是SHA-1、SHA-224、SHA-256、SHA-384,和SHA-512
2、可逆加密:可逆加密有对称加密和非对称加密。
(1)对称加密
【文件加密和解密使用相同的密钥,即加密密钥也可以用作解密密钥】
在对称加密算法中,数据发信方将明文和加密密钥一起经过特殊的加密算法处理后,使其变成复杂的加密密文发送出去,收信方收到密文后,若想解读出原文,则需要使用加密时用的密钥以及相同加密算法的逆算法对密文进行解密,才能使其回复成可读明文。在对称加密算法中,使用的密钥只有一个,收发双方都使用这个密钥,这就需要解密方事先知道加密密钥。
对称加密算法的优点是算法公开、计算量小、加密速度快、加密效率高。
用途:一般用于保存用户手机号、身份证等敏感但能解密的信息。
常见的对称加密算法有:AES、DES、3DES、Blowfish、IDEA、RC4、RC5、RC6
(2)非对称加密
【两个密钥:公开密钥(publickey)和私有密钥,公有密钥加密,私有密钥解密】
非对称加密算法是一种密钥的保密方法。非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。
非对称加密算法实现机密信息交换的基本过程是:甲方生成一对密钥并将其中的一把作为公用密钥向其它方公开;得到该公用密钥的乙方使用该密钥对机密信息进行加密后再发送给甲方;甲方再用自己保存的另一把专用密钥对加密后的信息进行解密。
服务器存私钥,客户端拿公钥,客户端加解密算法可以做成so库。
非对称加密与对称加密相比,其安全性更好;非对称加密的缺点是加密和解密花费时间长、速度慢,只适合对少量数据进行加密。
用途:一般用于签名和认证。
常见的非对称加密算法有:RSA、DSA(数字签名用)、ECC(移动设备用)、Diffie-Hellman、El Gamal。另外还有ECDSA(是ECC与DSA的结合),比特币中使用的 就是ECDSA 算法, ECDSA 是美国政府的标准,是利用了椭圆曲线的升级版,这个算法经过了数年的细致密码分析,被广泛认为是安全可靠的。
二、一般保证数据传输的安全性措施:
使用HTTP协议可以使用非对称加密,服务器存私钥,客户端拿公钥,客户端加解密算法可以做成so库,加大被破解难度。(上家工作的公司就使用的RSA非对称加密)
给协议加上时间戳等特定参数提交服务器做校验,HTTP协议头也可以做相关安全参数设定,这个得服务器和客户端商定方案了。
使用HTTPS协议通讯,HTTPS是协议通道加密,会更直接,更全局性。
三、注意:
Base64编码:Base64只是一种编码方式,不算加密方法。
Base64编码要求把3个8位字节(3×8=24) 转化为 4个6位的字节(4×6=24),之后在6位的前面补两个0,形成8位一个字节的形式。 如果剩下的字符不足3个字节,则用0填充,输出字符使用’=’,因此编码后输出的文本末尾可能会出现1或2个’=’。
关于加密技术分类的说明(密码学基础)相关推荐
- 【现代密码学基础Introduction to Modern Cryptography】02 完美性加密(perfectly secret encryption)
[现代密码学基础Introduction to Modern Cryptography]02 完美性加密(perfectly secret encryption) Perfect secrecy 1. ...
- 密码学基础(对称加密和非对称加密)
密码学基础 分类 对称加密 非对称加密 两类加密的特点 结合使用 举例 凯撒密码 代码实现-加密 代码实现-解密 main函数及文件加密 分类 一般分为: 对称加密 非对称加密 对称加密 加密和解密使 ...
- 密码学基础以及完整加密通讯过程解析
密码学基础以及完整加密通讯过程解析 前言 一.密码学相关基本概念 二.对称加密 三.非对称加密 四.杂凑算法 五.完整加密通讯过程 前言 密码学是研究如何隐密地传递信息的学科. 密码是通信双方按约定的 ...
- 计算机 密码学 实验一,计算机网络安全技术-实验一-密码学基础
计算机网络安全技术-实验一-密码学基础 计算机科学与技术系实 验 报 告专业名称 网络工程 课程名称 计算机网络安全技术 项目名称 密码学 班 级 13 网工(1)班 学 号 1304031030 姓 ...
- http、https、密码学基础、GET和POST区别
http协议相关: http协议的特性: http协议是建立在TCP/IP协议之上应用层协议,默认端口为80或者8080.http协议的的特点是无状态,无连接(并不是真的没有连接,而是在请求数据的时候 ...
- 重力传感器 测重力代码_“重力瀑布”如何帮助您教授孩子的密码学基础知识...
重力传感器 测重力代码 by Kamil Tustanowski 通过卡米尔·图斯坦诺夫斯基 "重力瀑布"如何帮助您教授孩子的密码学基础知识 (How "Gravity ...
- 密码学基础算法(二)中国剩余定理
随便谷歌了一个图片做首图 原图地址: http://www.siwapu.com/etagid41968b0/ 密码学基础系列: (一) 基于整数的欧几里得算法和扩展欧几里得算法 (二) 中国剩余定理 ...
- 密码学基础:Base64编码
文章概述: 本文目的:写这篇文章的目的主要是整理下密码学中Base64的知识点,并把它们分享出来.并且帮助初探密码学的坛友们一步一步的用C语言将Base64的编码实现出来. 阅读方法:希望大家在浏览完 ...
- 计算机基础(07)密码学基础
今天的我们只要接触密码学相关的信息,那一定是经常会听说各种密钥啊,之类的,但这个东西到底是怎么发展来的呢?这里我们从密码学的发展.古典密码学和现代密码学等角度搞清楚密码学到底是怎么发展的,以及为什么后 ...
- HTTPS安全通讯 1. 密码学基础
文章目录 一. 密码学发展 1. 古代保密之术 2. 近代密码学发展 二.数论 三. 群论与有限域 1. 抽象加法与群论 2. 有限域 四.加密基元与加密工具包 五.随机数 1. 随机数分类 2. 命 ...
最新文章
- 自己对多线程的一点思考
- 【EventBus】事件通信框架 ( 订阅方法注册 | 注册 事件类型 - 订阅类 + 订阅方法 到指定集合 | 取消注册 数据准备 )
- java 向nodejs 发送请求简单案例
- 2020年, SGG论文汇总
- 100. Same Tree 相同的树
- python和node_Python和NodeJS绘图对比
- codeforces 118A-C语言解题报告
- 最开始教学html5的人,初识html5的个人看法
- VB.NET工作笔记003---使用ASP_vbs脚本_或vb.net调用Sqlserver DTS文件
- 人脸关键点:TCDCN-Facial Landmark Detection by Deep Multi-task Learning
- Java项目性能监控和调优工具-Javamelody
- SQL Server 连接查询(多表连接查询)
- 永中表格中自定义函数提取网址
- AUTOMATE THE BORING STUFF WITH PYTHON读书笔记 - 第4章:LISTS
- FreeRTOS STM32CubeMX port.c(483): error: A1586E: Bad operand types (UnDefOT, Constant) ...
- 2.4G SOC芯片CI2451/CI2454应用于遥控玩具汽车的应用方案
- 转:Yahoo!网站性能最佳体验的34条黄金守则——图片、Coockie与移动应用
- 三大运营商5G套餐出炉:有什么区别呢?
- redis---incr命令
- mac电脑安装maple2017
热门文章
- 钢绞线的弹性模量的计算方法_钢绞线弹性模量计算
- 微信红包封面制作小程序开放,人人都可免费制作了!!!
- C++ Primer第六版程序清单与习题详解【第二章 开始学习 C++】
- 中兴 ZXV10 B860AV1.1通用刷机教程
- 一个数组,负数放左边,正数放右边
- linux中 nginx 访问html正常 访问php报错
- [附源码]计算机毕业设计Python+uniapp美团外卖微信菜价平台系统的设计与实现9t7op(程序+lw+远程部署)
- 微信小程序+EMAS serverless 设置过程
- CorelDRAW使用图文教程电子书
- Python语法基础(U.9)-Python计算生态概览