【问题标题】:vi encryption: what algorithm has been used?vi 加密:使用了什么算法?
【发布时间】:2012-12-10 05:33:41
【问题描述】:

多年来,我一直使用加密文件来存储我的密码。它已在 Sun Solaris 10 上使用 vi -x 命令加密。我现在尝试使用vi -xvi -x -cm=blowfish 在 linux 机器上打开该文件。可悲的是,该文件完全搞砸了。我的猜测是在 Solaris 上使用了不同的加密算法。如何找出使用了哪种算法以及如何使用更新版本的 vi 打开文件?

我知道正确的密码,而且我知道加密文件中的几个字。

P.S.:我再也无法使用 solaris 10 机器了

【问题讨论】:

  • 您在opensolaris.org 浏览Solaris 源代码时可能会有一些“运气”。我做了一点,它看起来内部使用 ex 代码的 vi 使用 libcrypt,它在内部打开了 crypt 命令。反过来,这似乎没有使用任何“众所周知的”算法。小心警告,我可能完全不在这儿了。
  • 加密文件的第一个字符是什么?例如,最新版本的 vi 显示 VimCrypt

标签: encryption vi


【解决方案1】:

我认为 vi 使用了 crypt 函数。这是一个很长的镜头,但是如果您可以访问 mcrypt,这应该可以解码 solaris crypt:

mcrypt  -a des --keymode pkdes --bare --noiv --decrypt filename

旧的 unix 风格的地穴

mcrypt  -a  enigma  --keymode  scrypt --bare --decrypt filename

【讨论】:

    【解决方案2】:

    /usr/bin/vi(也从 /usr/ucb/vi 链接)、/usr/xpg4/bin/vi/usr Solaris 10 上的 /xpg6/bin/vi(以及所有早期版本的 Solaris)都使用 crypt(1)(Enigma 变体)加密。

    在 Solaris 11 及更高版本上,vi 实际上是 vim,并使用该版本的 vim 支持的任何加密,这与 crypt(1) 不兼容。

    “旧”vi 可能仍作为 /usr/sunos/bin/vi 在 Solaris 11 上存在,但不再具有 -x 选项。

    crypt(1) 也不再在 Solaris 11 上。

    但是人们可以很容易地找到源代码(google for usr/src/cmd/crypt/crypt.c)并修复任何可以编译的版本。

    正如之前的海报所指出的,mcrypt 也可以完成这项工作。

    后者可通过(至少)MacPorts 用于 Mac(“port install mcrypt”,尽管在那里运行 mcrypt 的简单测试对我不起作用),对于 CentOS,通过“yum install mcrypt”,对于 Ubuntu,通过“易于安装 mcrypt"; cygwin 还有一个 mcrypt 包。

    对于任何其他操作系统或发行版,您只能靠自己;我没有一切。 ?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-09-05
      • 1970-01-01
      • 2011-03-20
      • 2012-12-12
      • 2011-07-26
      • 2017-10-02
      • 1970-01-01
      • 2020-06-14
      相关资源
      最近更新 更多