一文搞懂Web中暗藏的密码学
副标题[/!--empirenews.page--]
【线上直播】11月21日晚8点贝壳技术总监侯圣文《数据安全之数据库安全黄金法则》
前言 开发网站登录功能时,如何保证密码在传输过程/储存的安全? 相信不少前后端的朋友,在面试时都会被问到类似的问题。 在我对密码学一无所知时,也仅会回答:“MD5加密啊。” 诸不知,密码学在网络七层模型,甚至web开发中的应用比我想象得多得多。 1. 什么是密码学? 密码学是各种安全应用程序所必需的,现代密码学旨在创建通过应用数学原理和计算机科学来保护信息的机制。但相比之下,密码分析旨在解密此类机制,以便获得对信息的非法访问。 密码学具有三个关键属性:
例如个人医疗数据:
在本文中,我们将从加密,哈希,编码和混淆四种密码学基础技术来入门。 2. 什么是加密? 加密定义:以保证机密性的方式转换数据的过程。 为此,加密需要使用一个保密工具,就密码学而言,我们称其为“密钥”。 加密密钥和任何其他加密密钥应具有一些属性:
2.1 加密的分类:对称和非对称 加密分为两类:对称和非对称 对称加密: 用途:文件系统加密,Wi-Fi 保护访问(WPA),数据库加密(例如信用卡详细信息) 非对称加密: 用途:TLS,VPN,SSH。 其主要区别是:所需的密钥数量:
![]() 能被密码界承认的加密算法都是公开的:
3. 什么是哈希? 哈希算法定义:·一种只能加密,不能解密的密码学算法,可以将任意长度的信息转换成一段固定长度的字符串。 加密算法是可逆的(使用密钥),并且可以提供机密性(某些较新的加密算法也可以提供真实性),而哈希算法是不可逆的,并且可以提供完整性,以证明未修改特定数据。 哈希算法的前提很简单:给定任意长度的输入,输出特定长度的字节。在大多数情况下,此字节序列对于该输入将是唯一的,并且不会给出输入是什么的指示。换一种说法:
为了说明这一点,请想象一个强大的哈希算法通过将每个唯一输入放在其自己的存储桶中而起作用。当我们要检查两个输入是否相同时,我们可以简单地检查它们是否在同一存储桶中。 散列文件的存储单位称为桶(Bucket) 3.1 例子一:资源下载 提供文件下载的网站通常会返回每个文件的哈希值,以便用户可以验证其下载副本的完整性。 例如,在Debian的图像下载服务中,您会找到其他文件,例如SHA256SUMS,其中包含可供下载的每个文件的哈希输出(在本例中为SHA-256算法)。
(编辑:晋中站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |