博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【转】/etc/shadow 口令的加密方法
阅读量:6515 次
发布时间:2019-06-24

本文共 1437 字,大约阅读时间需要 4 分钟。

原文出处:

 

linux的/etc/shadow是专门用于存放用户口令的,以前一直听说口令是用md5加密(其实是hash)过的,但里连的格式和md5sum生成的并不一样。可以查看下/etc/shadow,对该文件不了解的话可以上网查询。

下面来看第二列(这个是我随便生成的,并不是系统的):

$1$eCeLr51L$/1EEtFr8iQ.TySiJKHQRQ/

可以看出格式比较奇怪,里边有三个$,还有./等东西,而md5sum生成的hash类似这样

1$ echo -n password|md5sum

25f4dcc3b5aa765d61d8327deb882cf99  -

是十六进制串。显然shadow不是将口令直接md5sum得到的。其余可以 了解一下,内容太多,只贴一部分:

-------------

       If  salt is a character string starting with the characters "$id$" fol‐

       lowed by a string terminated by "$": 

              $id$salt$encrypted

       then instead of using the DES machine,  id  identifies  the  encryption

       method  used  and  this  then  determines  how the rest of the password
       string is interpreted.  The following values of id are supported:

              ID  | Method

              ─────────────────────────────────────────
              1   | MD5
              2a  | Blowfish (not in mainline glibc; added in some
                  | Linux distributions)
              5   | SHA-256 (since glibc 2.7)
              6   | SHA-512 (since glibc 2.7)
-------------

基本可以了解格式了。

也就是说hash方法是可以选择的,只有$1$就是MD5,而且产生这个还需要一个salt,它是一个8字节的字符串,hash是根据它和口令一样生成的,而shadow里这个salt是随机生成的。

可以写个程序试验一下:

01#define _XOPEN_SOURCE

02#include <stdio.h>

03#include <unistd.h>

04int main(int argc, char *argv[])

05{

06 char key[20] = "password";

07 char salt[20] = "$1$eCeLr51L33";

08 printf("%s\n", crypt(key, salt));

09

10 return 0;

11}

其余最开始的 $1$eCeLr51L$/1EEtFr8iQ.TySiJKHQRQ/ 就是用它生成的。shadow用的基本也是这个方法,只是那个salt不是确定的,可以用mkpasswd进行生成。

它虽然说是md5 Method,但和md5sum并不相同,二者也不可以互相转换。

转载于:https://www.cnblogs.com/bourneli/articles/2585224.html

你可能感兴趣的文章
如何在PDF上添加水印
查看>>
淺談比特币
查看>>
2.Linux基本知识点整理(不定时更新中..)
查看>>
所有Mac用户都需要知道的9个实用终端命令行
查看>>
使用ISO镜像构建基于FTP,HTTP的YUM源服务器
查看>>
RMI(远程方法调用)介绍
查看>>
第一章
查看>>
Spring Boot基础教程-Spring Tool Suite工具的安装
查看>>
Android 事件处理,事件模型详解
查看>>
今天开通了博客
查看>>
TCP/IP、Http的区别
查看>>
SDK 概念
查看>>
day18:获取网卡IP地址|检查目录|下载文件|猜数字|根据名字得数字
查看>>
dom4j解析XML
查看>>
Oracle DBA课程系列笔记(12_1)
查看>>
mysql5.5源码编译安装详细步骤
查看>>
Oracle RAC Study之--Cache Fusion
查看>>
解决centos 6.6 更换yum 163源报错
查看>>
LNMP组件分离
查看>>
java代码在线生成工具
查看>>