当前位置:  技术问答>linux和unix

菜鸟问linux下C编译的问题,涉及到linux加密

    来源: 互联网  发布时间:2015-02-18

    本文导语:  写了一个简单的程序cryptword.c,用来验证linux的用户密码是否正确,例如执行cryptword 用户名 密码,输出为true表示正确,false表示错误。程序内容如下: #define _XOPEN_SOURCE #include  #include  #include  #include  #include  #inclu...

写了一个简单的程序cryptword.c,用来验证linux的用户密码是否正确,例如执行cryptword 用户名 密码,输出为true表示正确,false表示错误。程序内容如下:
#define _XOPEN_SOURCE
#include 
#include 
#include 
#include 
#include 
#include 
main(int argc, char* argv[])
{
        struct spwd *str ;
        char *cryptedpwd;
        char *found="false";
        char *salt;
        if (argc!=3) exit(0);
        while (str=getspent())
        {
                if(strcmp(argv[1],str->sp_namp)==0)
                {
                        strncpy(salt,str->sp_pwdp,11);
                        cryptedpwd = crypt(argv[2],salt);
                        if (strcmp(cryptedpwd,str->sp_pwdp)==0)
                                {
                                        found = "true";
                                        break;
                                }
                }
        }
        endspent();
        printf("%s",found);
}
曾经编译通过gcc -o cryptword cryptword.c,生成可执行文件cryptword,把shadow文件设置为S权限后,执行结果也正确。可是后来linux重装7.3版本(原来是7.0的),cryptword.c文件编译总是出错,错误如下:
/tmp/ccnXEqB6.o: In function `main':
/tmp/ccnXEqB6.o(.text+0x7d): undefined reference to `crypt'
collect2: ld returned 1 exit status
我查看了crypt函数的帮助文件,该用的库文件也都包含进来了,真奇怪。另外我又把以前编译通过的可执行文件cryptword拷贝过来执行了一下,出现错误:Segmentation fault。不知道这是什么意思。后来我以为是linux版本升级的原因。就把这个可执行文件放到linux7.0下执行,果然结果是正确的,可奇怪的是,在7.0下编译cryptword.c文件,错误是一样的,也是无法编译成功。
困惑中……请大侠帮忙解惑~

|
# gcc -o cryptword cryptword.c -lcrypt

should be ok.

|
编译时增加 -lcrypto(可能是-lcrypt),记不清楚了。
gcc -o cryptword cryptword.c -lcrypto

|
使用
gcc -o cryptword cryptword.c -lcrypt -g编译

gdb cryptword调试

我授你渔:)

|
在我的机器上 rh7.2 没问题

(使用root权限执行)
gcc  -g -o cryptword cryptword.c -lcrypt
./cryptword root 1234567
ture

    
 
 

您可能感兴趣的文章:

  • 菜鸟的Linux练习疑问……
  • 菜鸟想学linux,终于装上redhat8.0了,linux有可以播放视频的软件吗?在哪里下载??
  • 菜鸟的问题:求助,关于red hat linux 引导程序
  • 新人新年散分混个脸熟,顺便问个菜鸟级LINUX问题
  • linux菜鸟(windows xp与 linux安装问题,急(在线等),现在机器正在罢工)
  • ※菜鸟送分之一※ Red Hat Linux 的最高版本是多少?
  • ★菜鸟问:怎么在RED HAT LINUX7.2中用169上网??
  • 如何解压光盘上的gz文件到某个目录?(Linux 超级菜鸟问题之一)
  • 菜鸟询问:学习linux主要的方向?
  • 超级菜鸟问题:使用VMware安装linux会删除硬盘上的数据吗?
  • Linux菜鸟三求!
  • linux菜鸟的安装问题求救!
  • 菜鸟问题,怎样学Linux,
  • 关于linux的菜鸟问题~
  • 菜鸟求助:Linux安装完了不能上网,SOS?
  • Linux安装oracle,菜鸟急用!
  • linux下游戏问题。(菜鸟问题)
  • 菜鸟怎么装linux?
  • 菜菜的菜鸟来请教:Linux系统怎么安装?
  • Linux的菜鸟问题!
  • 菜鸟问题:请教纯DOS下对子目录和文件的加密方法,简单的就可以。
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • ----菜菜鸟第三问:-菜鸟菜问:JAVA如何求 根号、开次方? -----
  • 菜鸟问一个关于j2ee的菜鸟问题
  • 怎样从一个菜鸟级的java programer升级到一个菜鸟级的java developer
  • 一个连菜鸟都算不上的菜鸟
  • 菜鸟求问菜鸟问题 ,域名绑定
  • ===菜鸟系列===:写过毕业论文的前辈请进!!!菜鸟散分啦!!!!
  • gcc问题---菜鸟发问之一,老大们帮忙啊!!菜鸟分不多,只好给这点了,对不起!!
  • 菜鸟又来问菜鸟问题了
  • java/j2ee iis7站长之家
  • 菜鸟提问,我怎么装redhat7。1
  • 菜鸟写的俄罗斯方块,请多多批评!
  • 小问题,你一定能够帮忙!——菜鸟请求帮忙!!
  • 一个菜鸟的请求: 哪位前辈能给晚辈讲讲“匿名类”
  • 菜鸟问题:在Java中如何接收从键盘输入的字符串?
  • 菜鸟提问:包是什么概念?
  • 菜鸟问题~~快点进来拿分
  • 菜鸟菜问题1
  • 菜鸟问题:如何在Solaris下配置显卡和显示器
  • 菜鸟问题:RED HAT下的网上邻居功能在哪?
  • 菜鸟问题:在red hat 9 下如何改变netscapt7界面字体?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3