linux支持的口令加密算法

遇到一个问题

今天遇到一个问题:如何判断shadow文件中存储的密码是明文还是密文?

进而发散了一个问题:Linux是否支持明文密码认证?

第一个问题:区分明文、密文

一般情况下,Linux的shadow文件中存储的密码都是密文,并且很容易区分加密算法、加密盐值以及加密串:

$6$SALT$io0TPmhM8ythCm7Idt0AfYvTuFCLyA1CMVmeT3EUqarf2NQcTuLKEgP9.4Q8fgClzP7OCnyOY1wo1xDw0jtyH1

如上,是通过$关键字分割的。常见的加密算法列表:

$1 :MD5
$2 :Blowfish(最早的版本,有一些缺陷,不推荐使用)
$2a :Blowfish(修复了一些缺陷后的版本,但仍然有一些问题,不推荐使用)
$2b :Blowfish(修复了2a中的问题后的版本,是安全、常用的版本)
$2y :Blowfish(Eksblowfish版本)
$5 :SHA-256
$6 :SHA-512
$y :Yescrypt(Blowfish加密方式的一个变种,提供了更高的安全性和性能)
$sm3 :SM3

当然,如果存储的密文都是这样的,那就没了问题,也很好去区分明文还是密文。凡事就有个不一般:DES加密串是这样式儿的:

yviVMljz3DakQ

很普通的随机串,大小写字母、数字、特殊字符组成,长度固定为13位。但是,明文密码也可以是这样的,虽然明文要更加易读,程序却很难区分,只有一个固定13位长度比较明显。

第二个问题:支持明文密码认证吗?

只能做实验了。

实验一:存储明文密码并登录系统(失败)

useradd user1 --password 12345678,该命令会将12345678存储在shadow文件中,格式如下:

user1:12345678:19786:0:99999:7:::

然后su - user1切换用户登录,输入密码12345678,认证失败:

notice|unix_chkpwd[1328628]|password check failed for user (user1)
notice|su[-]|pam_unix(su-l:auth): authentication failure; logname=root uid=1000 euid=0 tty=pts/0 ruser=user1 rhost=  user=user1

实验二:存储DES加密串并登录系统(成功)

echo 'user1:12345678' | chpasswd --crypt-method DES ,该命令会将shadow中user1的密码以DES加密串的形式存储:

user1:WAyc3fcyUgCqc:19786:0:99999:7:::

su - user1切换用户登录,输入密码12345678,成功登录:

pam_unix(su-l:session): session opened for user user1(uid=3001) by root(uid=3001)

实验三:调整PAM配置以支持明文(失败)

调整了半天,更换了各种参数,除了将system-auth中的auth        required      pam_deny.so行注释掉(这么干的话,不管你密码输入的是啥都会成功登录),其他各种配置均都登录失败。

结论:

在大多数情况下,现代的 Linux 系统不支持将密码以明文形式存储在 /etc/shadow 文件中。在 Linux 中,/etc/shadow 文件通常存储的是经过加密或哈希处理的密码哈希值,而不是明文密码。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/723017.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Github 2024-03-06 C开源项目日报 Top10

根据Github Trendings的统计,今日(2024-03-06统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量C项目10TDengine: 适用于物联网和工业物联网的高性能时序数据库 创建周期:1686 天开发语言:C协议类型:GNU Affero General Public License v…

基于SSM的农业信息管理系统的设计与实现(有报告)。Javaee项目。ssm项目。

演示视频: 基于SSM的农业信息管理系统的设计与实现(有报告)。Javaee项目。ssm项目。 项目介绍: 采用M(model)V(view)C(controller)三层体系结构,…

字节跳动热门的前端开源项目

字节跳动开源官网 Arco Dsign Arco Design 是一套设计系统,主要服务于字节跳动旗下中后台产品的体验设计和技术实现。它的目标在于帮助设计师与开发者解放双手、提升工作效率,并高质量地打造符合业务规范的中后台应用。它拥有系统的设计规范和资源&…

运维知识点-hibernate引擎-HQL

HQL有两个主要含义,分别是: HQL(Hibernate Query Language)是Hibernate查询语言的缩写,它是一种面向对象的查询语言,类似于SQL,但不是去对表和列进行操作,而是面向对象和它们的属性…

SpringBoot中自动配置的bean的依赖属性配置管理

🙈作者简介:练习时长两年半的Java up主 🙉个人主页:程序员老茶 🙊 ps:点赞👍是免费的,却可以让写博客的作者开心好久好久😎 📚系列专栏:Java全栈,…

ArmSoM Rockchip系列产品 通用教程 之 UART 使用

1. UART 简介​ Rockchip UART (Universal Asynchronous Receiver/Transmitter) 基于16550A串口标准,完整模块支持以下功能: 支持5、6、7、8 bits数据位。支持1、1.5、2 bits停止位。支持奇校验和偶校验,不支持mark校验和space校验。支持接…

Yolov8有效涨点,添加多种注意力机制,修改损失函数提高目标检测准确率

目录 简介 CBAM注意力机制原理及代码实现 原理 代码实现 GAM注意力机制 原理 代码实现 修改损失函数 YAML文件 完整代码 🚀🚀🚀订阅专栏,更新及时查看不迷路🚀🚀🚀 http://t.csdnimg.c…

Mol2文件处理-拆分、合并、提取名称、计数与格式转换

欢迎浏览我的CSND博客! Blockbuater_drug …点击进入 文章目录 前言一、Mol2文件合并二、Mol2文件拆分为含有单个分子的文件三、Mol2文件分子名称修改与提取3.1 分子名称修改去除空格3.2 文件名称提取 四、Mol2文件包含分子计数4.1 Mol2文件中分子计数4.2 分子计数传…

Python——与Matlab对应的Python版本

参考资料: Python——与Matlab对应的Python版本

Rust 开发的高性能 Python 包管理工具,可替换 pip、pip-tools 和 virtualenv

最近,我在 Python 潮流周刊 中分享了一个超级火爆的项目,这还不到一个月,它在 Github 上已经拿下了 8K star 的亮眼成绩,可见其受欢迎程度极高!国内还未见有更多消息,我趁着周末把一篇官方博客翻译出来了&a…

请说明Vue中的解耦能力

Vue中的解耦能力是指在Vue框架中,我们能够有效地将代码分离成独立的组件或模块,使得这些组件之间的依赖关系减少,实现高内聚、低耦合的设计目标。利用Vue中的组件化开发,可以让不同的模块之间更容易地通信和协作,提高代…

【小白学机器学习7】相关系数R,决定系数R2和SST=SSR+SSE, 离差,偏差,方差,标准差,编译系数,标志误。

目录 1 各种数据指标,分类整理 1.0 关于数据/值有3种 1.1 第1类:描述一堆数据特征的指标:集中度,离散度,形状特征 1.2 第2类:判断预测y值和观测值差距的指标 1.3 第3类:描述误差的各种指标…

[清爽快捷]一条命令解决国内访问github超时For Linux、MAC 、Windows

国内访问github经常超时,通常使用梯子是比较常见的做法,但是梯子收费不太符合互联网的精神。本文给出一条命令解决Ubuntu上git访问github超时的解决办法 方法 在下面选择对应平台的命令复制,打开自己平台的shell,粘贴并执行&…

无线地勘答题模板

(三)无线网络配置 CII集团公司拟投入13万元(网络设备采购部分),项目要求重点覆盖楼层、走廊和办公室。平面布局如图1所示。 图1 平面布局图 1.绘制AP点位图(包括:AP型号、编号、信道等信息,其中信道采用2.4G的1、6、11三个信道进行规划)。 2.使用无线地勘软件,输出…

iOS应用内购安全:生成共享密钥以验证收据+核对凭证内不能伪造的字段【解决IAP收据伪造问题】

文章目录 receiptData 旧收据伪造问题I 生成共享密钥以验证收据1.1 IAP步骤1.2 验证苹果receipt接口1.3 App Store Server Notifications(苹果通知)II 核对凭证内不能伪造的字段see alsoreceiptData 旧收据伪造问题 对于 StoreKit Original API 获取的 receiptData 凭证,苹果…

【leetcode热题】只出现一次的数字 II

难度: 中等通过率: 44.6%题目链接:. - 力扣(LeetCode) 题目描述 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现了三次。找出那个只出现了一次的元素。 说明&#xff…

html标签之表格标签,程序员必看

突破困境: 1. 提升学历 前端找工作,学历重要吗? 重要。谁要是告诉你不重要那一定是在骗你。现实情况是大专吃紧,本科够用,硕士占优,大专以下找到工作靠运气和 戳这里领取完整开源项目:【一线大…

【力扣经典面试题】14. 最长公共前缀

目录 一、题目描述 二、解题思路 三、解题步骤 四、代码实现(C版详细注释) 五、总结 欢迎点赞关注哦!创作不易,你的支持是我的不竭动力,更多精彩等你哦。 一、题目描述 编写一个函数来查找字符串数组中的最长公共前缀。…

Java 验证码生成的两种方式【开箱即用】

小伙伴们好,欢迎关注,一起学习,无限进步 文章目录 通用公共配置公共依赖配置 application.yml 文件公共常量Redis 序列化配置Redis 工具类通用返回结果封装 方法一:Graphics2D 画图实现1、验证码工具类2、Controller 控制层 方法二…

微软研究深度报告:Sora文转视频AI模型全景剖析及未来展望

论文由微软研究团队撰写,这篇论文深入探讨了Sora的发展背景、核心技术、新兴应用场景、现有的局限性以及未来的发展机会,基于公开资料和团队自行进行的逆向工程分析。文中详尽且逻辑清晰,建议细读全文以获得深入了解。 原文:Sora…