Windows Server入门系列29 Hash加密与SAM数据库

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介:

在对用户账户管理的过程中,一个核心任务是如何管理好用户的密码。如果某个用户使用用户账户和密码成功通过了系统的登录认证,那么他之后执行的所有操作都自动具有该用户的权限,如果这个用户属于管理员组,那么他就对整个系统具有完全控制权限。因而,管理好用户账户以及密码是保证系统安全的第一道屏障。

在本篇以及之后的几篇博文中将介绍一系列与用户密码相关的知识,以使大家能够对之有更深一步的了解。

 

一、 Hash加密算法

Hash是一种在网络安全领域被广泛使用的加密算法。Hash算法,一般被翻译为散列算法,也可直接称之为哈希算法。这种算法非常特殊,它可以将一个任意大小的数据经过散列运算之后,得到一个固定长度的数值(Hash值)。比如我们将一个大小只有10B的文件和一个大小为5GB的文件,分别用Hash算法进行加密,都将得到一个长度为128位或160位的二进制数的Hash值。

另外,Hash算法还有一个特点,那就是散列运算的过程是不可逆的,即我们无法通过Hash值来推导出运算之前的原始数据。

Hash算法的特征归纳起来主要是以下四点:

  • 定长输出:无论原始数据多大,其结果大小一样。

  • 不可逆:无法根据加密后的密文,还原原始数据

  • 输入一样,输出必定一样。

  • 雪崩效应:输入微小改变,将引起结果巨大改变。

前两个特点刚才已经介绍过了,下面我们通过一个具体的操作来体会一下后两个特点,这里要用到一个名为MD5Calculator的小软件,它可以来对指定的文件进行MD5加密。

MD5加密是Hash加密算法的一种具体应用,除了MD5之外,还有一种被广泛采用的同样基于Hash加密的加密算法——SHA1。MD5和SHA1的主要区别是它们所生成的Hash值的长短不同,MD5加密生成的Hash值长度为128位,SHA1加密生成的Hash值长度为160位。

下面随意找一个文件,比如一个word文档,用它来生成Hash值。注意,下图这个文档中最后没有句号。

image

用软件MD5Calculator对文件进行加密运算,生成Hash值,将其保存下来。

image

把原先的文件修改一下,在末尾增加一个句号。然后重新计算生成Hash值。

image

对比可以发现,前后两次的Hash值差别非常大,但是Hash值的长度都是一样的,都是一个32位的十六进制数(即128位的二进制数)。

Hash加密在网络安全领域应用的非常广泛,像在Windows系统以及Linux系统中,都是采用了Hash算法来对用户的密码进行加密。

 

二、 SAM数据库

在Windows系统中,对用户账户的安全管理采用了SAM(Security Account Manager,安全账号管理)机制,用户账户以及密码经过Hash加密之后,都保存在SAM数据库中。

SAM数据库保存在C:\WINDOWS\system32\config\SAM文件中,当用户登录系统时,首先就要与SAM文件中存放的账户信息进行对比,验证通过方可登录。系统对SAM文件提供了保护机制,无法将其复制或是删除,也无法直接读取其中的内容。

SAM数据库中存放的用户密码信息采用了两种不同的加密机制。对于Windows9x系统,采用的是LM口令散列,对于Windows 2000之后的系统,采用的是NTLM口令散列。LM和NTLM都是基于Hash加密,但是它们的安全机制和安全强度存在差别,LM口令散列的安全性相对比较差。尽管现在已很少有人使用Windows9x系统,但为了保持向后兼容性,默认情况下,系统仍会将用户密码分别用这两种机制加密后存放在SAM数据库里。由于LM使用的加密机制比较脆弱,因而这就为用户密码破解方面带来了一定的安全隐患。


本文转自 yttitan 51CTO博客,原文链接:http://blog.51cto.com/yttitan/1335216

相关文章
|
2月前
|
关系型数据库 MySQL 数据库连接
数据库连接工具连接mysql提示:“Host ‘172.23.0.1‘ is not allowed to connect to this MySQL server“
docker-compose部署mysql8服务后,连接时提示不允许连接问题解决
|
7天前
|
安全 网络协议 算法
零基础IM开发入门(五):什么是IM系统的端到端加密?
本篇将通俗易懂地讲解IM系统中的端到端加密原理,为了降低阅读门槛,相关的技术概念会提及但不深入展开。
25 2
|
1月前
|
存储 缓存 Java
java语言后台管理ruoyi后台管理框架-登录提示“无效的会话,或者会话已过期,请重新登录。”-扩展知识数据库中密码加密的方法-问题如何解决-以及如何重置若依后台管理框架admin密码-优雅草卓伊凡
java语言后台管理ruoyi后台管理框架-登录提示“无效的会话,或者会话已过期,请重新登录。”-扩展知识数据库中密码加密的方法-问题如何解决-以及如何重置若依后台管理框架admin密码-优雅草卓伊凡
189 3
java语言后台管理ruoyi后台管理框架-登录提示“无效的会话,或者会话已过期,请重新登录。”-扩展知识数据库中密码加密的方法-问题如何解决-以及如何重置若依后台管理框架admin密码-优雅草卓伊凡
|
4月前
|
Linux 数据库 数据安全/隐私保护
GBase 数据库 加密客户端---数据库用户口令非明文存放需求的实现
GBase 数据库 加密客户端---数据库用户口令非明文存放需求的实现
|
5月前
|
安全 算法 Java
数据库信息/密码加盐加密 —— Java代码手写+集成两种方式,手把手教学!保证能用!
本文提供了在数据库中对密码等敏感信息进行加盐加密的详细教程,包括手写MD5加密算法和使用Spring Security的BCryptPasswordEncoder进行加密,并强调了使用BCryptPasswordEncoder时需要注意的Spring Security配置问题。
322 0
数据库信息/密码加盐加密 —— Java代码手写+集成两种方式,手把手教学!保证能用!
|
7月前
|
运维 安全 应用服务中间件
自动化运维的利器:Ansible入门与实战网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
【8月更文挑战第30天】在当今快速发展的IT时代,自动化运维已成为提升效率、减少错误的关键。本文将介绍Ansible,一种流行的自动化运维工具,通过简单易懂的语言和实际案例,带领读者从零开始掌握Ansible的使用。我们将一起探索如何利用Ansible简化日常的运维任务,实现快速部署和管理服务器,以及如何处理常见问题。无论你是运维新手还是希望提高工作效率的资深人士,这篇文章都将为你开启自动化运维的新篇章。
|
7月前
|
SQL 安全 网络安全
"守护数据王国,揭秘SQL权限管理与安全配置秘籍!从创建用户到加密技术,全方位打造铜墙铁壁,让你的数据库安全无忧,远离黑客侵扰!"
【8月更文挑战第31天】数据库是信息系统的核心,存储了大量敏感数据,因此确保其安全至关重要。本文详细介绍了SQL权限管理与安全配置的方法,包括理解权限类型、创建用户和角色、分配权限、实施密码策略、使用加密技术、配置防火墙、定期审计备份及防止SQL注入等,帮助你全面保护数据库安全。通过这些步骤,你可以有效管理和配置数据库权限,防范潜在威胁,确保数据隐私和完整性。
147 0
|
8月前
|
SQL 存储 安全
数据库数据恢复—SQL Server数据库出现逻辑错误的数据恢复案例
SQL Server数据库数据恢复环境: 某品牌服务器存储中有两组raid5磁盘阵列。操作系统层面跑着SQL Server数据库,SQL Server数据库存放在D盘分区中。 SQL Server数据库故障: 存放SQL Server数据库的D盘分区容量不足,管理员在E盘中生成了一个.ndf的文件并且将数据库路径指向E盘继续使用。数据库继续运行一段时间后出现故障并报错,连接失效,SqlServer数据库无法附加查询。管理员多次尝试恢复数据库数据但是没有成功。
|
7月前
|
数据库 数据安全/隐私保护
远程桌面CredSSP 加密数据库修正
远程桌面CredSSP 加密数据库修正
95 0

热门文章

最新文章