我的 linux 密码存储在我的系统上的什么地方,我该如何找回它?

msm*_*msm 2 command-line bash

我目前登录到我的 Linux 系统,我想在我的终端上输出我的 Linux 密码和用户名,我需要编写什么命令,它存储在哪个文件中,以及如何检索它?

jac*_*rdy 15

简而言之:您无法知道您的密码是什么。

尽管它存储在文件中/etc/shadow,但它以称为散列的“受保护”格式存储。这就像烤蛋糕是一组配料,没有办法从蛋糕中取出面粉。


gun*_*ert 6

密码根本没有存储在系统的任何地方。存储的/etc/shadow是所谓的密码哈希

一些文本的散列是通过对文本(密码)执行所谓的单向函数来创建的,从而创建一个字符串来检查。按照设计,逆转该过程是“不可能的”(计算上不可行)。

可以做的是尝试“蛮力”攻击——通过散列许多可能的密码,直到结果等于找到的散列。没有其他方法,您无法计算与您拥有的哈希匹配的文本(=密码)。

有几种算法可以创建散列,它们在复杂性、散列长度、所谓冲突的概率/可能性上有所不同(两个不同的文本具有相同的散列,如果散列比原始文本短,则最终必须发生这种情况)。

典型的当前算法是

  • MD5
  • SHA-1(也称为 SHA)

两者都不应再用于加密/安全目的!!

  • SHA-256
  • SHA-512
  • SHA-3(KECCAK 于 2012 年 10 月被宣布在新的联邦批准的哈希算法竞赛中获胜)——尚未在 Ubuntu 中使用。