LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1329|回复: 13

请问:如何获得口令被加密后的密文?

[复制链接]
发表于 2006-3-19 23:38:31 | 显示全部楼层 |阅读模式
c程序中能使用crypt()函数,可是shell脚本中怎么办呢?
谢谢!
发表于 2006-3-20 10:30:06 | 显示全部楼层
这个简单---将crypt自己封成一个程序,在shell里调用就行了

说正经的, 我也想知道.
还想知道解密的方法,有没有通用的程序或内含的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-3-20 11:54:03 | 显示全部楼层
可行是可行,就是觉得不太完美
想知道有没有什么系统调用直接可以用
回复 支持 反对

使用道具 举报

发表于 2006-3-20 12:34:43 | 显示全部楼层
please man passwd,and see 'stdin' option for detail.
       --stdin
              This option is used to indicate that passwd should read the  new
              password from standard input, which can be a pipe.

if you want add users in batch, there is a command for this purpose. But I forget it.
回复 支持 反对

使用道具 举报

发表于 2006-3-20 12:39:04 | 显示全部楼层
找到批量增加用户的命令了,是newusers
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-3-20 13:09:06 | 显示全部楼层
谢谢版主!
已经用useradd写好了框架了,懒得再改成用newusers的了

我用的是debian2.6.15的kernel,man passwd后,并没有--stdin选项,直接输入passwd --stdin报错!

另外想请教版主,象passwd这样的交互式命令,在脚本中一般都怎么处理?

多谢指教!
回复 支持 反对

使用道具 举报

发表于 2006-3-20 13:33:38 | 显示全部楼层
我用的是FC的passwd,我以前看过redhat的passwd源码,它使用的版本似乎是redhat重新开发的,添加了新增用户的私有组之类的功能。可能--stdin选项也是它自己独自开发的。

像PASSWD这样的命令,就我碰上的而言,都有类似--stdin的选项,以接受从标准输入而来的密码,像samba的smbpasswd有一个s选项也是这样的功能。如果命令有这种选项,可以使用像下面的办法在脚本中使用:
echo -e "mypasswd\nmypasswd" | passwd --stdin user
这像就给user用户的密码设为mypasswd了。
如果该命令没有这种选项支持,可以查看手册看它使用何种加密方法,像passwd使用的crypt函数,就只能自己写一个C函数来得到一个加密字串了,以下我给出一个源码的框架,以供参考:
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <unistd.h>

  4. int
  5. main(int argc, char *argv[])
  6. {
  7.    if (argc != 3)
  8.         {
  9.                 printf("usage: %s <password> <salt>\n", argv[0]);
  10.                 exit(-1);
  11.         }
  12.    printf("%s\n", crypt(argv[1], argv[2]));
  13.    exit (0);
  14. }
复制代码

注:关于crypt更多的细节可MAN或是到GNU的网站上去了解细节。

以上只是一个框架,写成合适的工具还需要有许多工作要做。
另外现在LINUX用了PAM的认证,也就是说有可能底层的加密方法不是用crypt,所以最好用pam的库来写。写这种程序时应该多考察一下系统所采用的办法。

用这种办法得到的加密字串再用passwd的-p选项添加到用户文件中生效。
回复 支持 反对

使用道具 举报

发表于 2006-3-20 13:39:27 | 显示全部楼层
there is a grub-md5-crypt that can be used to encrypt pw to md5 format, but don't know how to decrypt...
回复 支持 反对

使用道具 举报

发表于 2006-3-20 13:39:56 | 显示全部楼层
there is a grub-md5-crypt that can be used to encrypt pw to md5 format, but don't know how to decrypt...
回复 支持 反对

使用道具 举报

发表于 2006-3-20 13:39:58 | 显示全部楼层
there is a grub-md5-crypt that can be used to encrypt pw to md5 format, but don't know how to decrypt...
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表