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

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

一、 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值。注意,下图这个文档中最后没有句号。

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

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

对比可以发现,前后两次的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使用的加密机制比较脆弱,因而这就为用户密码破解方面带来了一定的安全隐患。

Windows Server入门系列29 Hash加密与SAM数据库相关推荐

  1. Windows Server入门系列38 访问网络共享

    在工作组模式下访问共享资源,主要有三种方法:网上邻居.UNC路径.映射网络驱动器. 注意,Windows Server 2003/2008系统不允许空密码访问,必须为管理员用户administrato ...

  2. Windows Server入门系列之三 硬盘分区

    一. 硬盘分区的相关知识 1. 硬盘的分区类型硬盘分区包括主分区.扩展分区.逻辑分区三种不同类型,在"磁盘管理"工具中可以清楚的查看到不同的分区类型. 主分区是包含有操作系统启动文 ...

  3. Windows Server入门系列32 利用SamInside获取系统密码Hash值

    如果希望破解远程系统的用户密码,那么就需要首先从远程系统的SAM文件中读取出密码Hash值,然后在本地通过LC5之类的软件进行破解. 获取系统密码Hash值的软件很多,比如GetHashes和SamI ...

  4. Windows Server入门系列之十六 端口、连接与端口扫描

    端口与连接是网络中两个非常基础的概念,本篇博文将介绍相关的一些基础知识. 1.端口 我们在学习网络技术时经常会提到80端口.21端口等,这些端口到底指的是什么呢?要注意,它们可不是像路由器或交换机上的 ...

  5. Windows Server入门系列34 用户配置文件

    Windows是一个多用户操作系统,当以某个用户的身份第一次在系统中登录时,系统会自动为用户创建相应的用户配置文件.用户配置文件其实是一个文件夹,对于WinXP/2003系统,用户配置文件夹位于&qu ...

  6. Windows Server入门系列之十 注册表的基本使用

    注册表是Windows系统中非常重要的系统工具,它其实是Windows的核心数据库,直接控制着Windows的启动.硬件驱动程序的装载以及一些应用程序的运行,对系统的运行起着至关重要的作用.注册表的功 ...

  7. Windows Server入门系列25 系统内置用户和组

    在计算机网络中,计算机和网络的服务对象是用户,而用户则是通过账户来访问计算机或网络上的资源,所以用户也就是账户,所谓的用户管理就是对用户账户的管理.组是用户账户的集合,一个组中的成员具有相同的属性,管 ...

  8. windows server 2008 系列讲座三部曲--在线讲座预告

    这里预告的事webcast方式的在线讲座,以演示为主,强调动手,希望能为广大IT同仁提供便捷的帮助. windows server 2008 系列讲座三部曲帮助您直达windows server 20 ...

  9. SAP PM入门系列29 - IW65 Display Activities

    SAP PM入门系列29 - IW65 Display Activities 事务代码 IW65是SAP PM模块里的一个标准报表.这个报表用于查询PM 维修通知单里的Activities. 不过,这 ...

最新文章

  1. nvGRAPH API参考分析(二)
  2. 我看过且非常喜欢的《电影》和书
  3. vsftpd登录报530
  4. [Leedcode][JAVA][第9题][回文数][数学法]
  5. 苹果新iPad Pro代工订单或将推升富士康4月份营收
  6. Java GUI简单点名器
  7. 守护冬奥安全 从北京网络安全大会开始
  8. 哈希加密matlab,图像加密算法之基于Hash函数和多混沌系统的加密
  9. 加速度传感器和角度传感器
  10. 南京、无锡、苏州三地部分it岗待遇简况
  11. 【渗透测试笔记】之【免杀工具——ScareCrow】
  12. nginx实现ip138查询当前ip功能,配置文件实现接口
  13. 荣耀路由器w831刷linux,华为荣耀WS831路由器如何设置
  14. java鬼吹灯搬山法杖_鬼吹灯昆仑神宫技能搭配攻略之搬山职业篇
  15. Python 获取优惠券淘宝口令
  16. 松下A6伺服驱动器MADLN15SE与欧姆龙PLC的连接和试运行
  17. 一般测试测几轮?每轮测什么?
  18. 微软杀毒软件 MSE (Microsoft Security Essentials) 官方下载地址
  19. kafka和zookeeper下载地址和安装方法和JAVA消费者方法
  20. Navicat for MySQL的1577错误解决

热门文章

  1. Java 11正式发布,新特性解读
  2. 什么样的代码为好代码?好代码的科学定义
  3. Sharepoint the file is locked for use domain\user edit.文件被锁定,解锁方式
  4. win 下squid的配置
  5. Java面向对象知识点精华
  6. Nginx 作为web server 的优化要点
  7. 电脑硬件学习(主板,CPU,内存,硬盘,显卡)
  8. router6 QoS 1 基础知识
  9. vlc学习计划(4)--在EMACS中使用GDB调试
  10. Elasticsearch 安装和使用