首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
宝塔
V2EX  ›  Linux

/etc/shadow 中的密码字符串是经过什么编码的吗?

  •  
  •   leavic · 216 天前 · 1854 次点击
    这是一个创建于 216 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我现在知道这个密码是密码+salt,用对应的 hash 算法算出来的,

    现在我用 python 来重现这个过程(使用 hashlib ),出来的结果只有 digest 和 hexdigest 两种,
    这两个一个是 bytes 数据,一个是 hex 数据,和 shadow 文件里的字符串都不同。

    那么,shadow 文件中的密码字符串是用 hex 数据或者 bytes 数据重新编码的吗?具体是什么编码方式呢?



    其实我的问题类似这个:
    https://stackoverflow.com/questions/53416164/md5-hash-in-python

    但是我想知道如果不用 crypt 模块能不能实现。
    第 1 条附言  ·  216 天前
    https://www.vidarholen.net/contents/blog/?p=32
    这篇文章的解释应该说是非常详细了
    1.运算不是单纯第一次 md5,有个 1000 次的循环
    2.使用了 crypt 的特殊 base64 编码格式。
    9 回复  |  直到 2019-11-06 10:44:15 +08:00
        1
    unclewang81   216 天前
    如果格式为”$id$salt$hashed ”,则表示该用户密码正常。其中$id$的 id 表示密码的加密算法,$1$表示使用 MD5 算法,$2a$表示使用 Blowfish 算法,”$2y$”是另一算法长度的 Blowfish,”$5$”表示 SHA-256 算法,而”$6$”表示 SHA-512 算法,
    目前基本上都使用 sha-512 算法的,但无论是 md5 还是 sha-256 都仍然支持。$salt$是加密时使用的 salt,hashed 才是真正的密码部分。
        2
    leavic   216 天前
    @unclewang81 你说的这些部分我都知道,现在的关键是 hashed 部分,到底是什么格式编码的字符串?
        3
    leavic   216 天前
    @unclewang81 举个最简单的例子,我们一般看到的 md5 hash 都是 hex string 格式的,但 shadow 文件里的明显是不 hex string
        4
    leavic   216 天前
    例如假定密码是 mypassword,盐是 mysalt,那么用 openssl 生成的 shadow 密码如下:

    openssl passwd -1 -salt mysalt mypassword
    $1$mysalt$JyKGOJR1343sJ7N91hXVI/

    但用 hashlib 生成的 md5 hexdigest 如下:
    399b1141e55e53a9df428ed4585ca3e9

    这两个数据如何转换呢?
        5
    ysc3839   216 天前 via Android
    你给的链接已经是较好的答案了,直接使用 crypt 即可。
    不想用?那就自己实现吧。我帮你找到了 glibc 的实现。
    https://code.woboq.org/userspace/glibc/crypt/crypt-entry.c.html#__crypt_r
        7
    mikeguan   216 天前 via Android
        8
    leavic   216 天前
    @joesonw 感谢,看来 crypt 是用了自己的编码方式。
        9
    xyjincan   15 天前
    哇!
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   3404 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 23ms · UTC 04:18 · PVG 12:18 · LAX 20:18 · JFK 23:18
    ♥ Do have faith in what you're doing.