| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1055 人关注过本帖
标题:c 输出 crypt 加密过的字符串问题
取消只看楼主 加入收藏
linost
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2011-4-22
结帖率:0
收藏
已结贴  问题点数:20 回复次数:4 
c 输出 crypt 加密过的字符串问题
我是用php生成一个用crypt 加密过的密码:$password=crypt($pass); 然后将这个$password 传递给了c 程序,
c程序我定义的是:
main(int argc, char *argv[])
然后使用:printf("%s",argv[1]); 语句想输出这个经加密的字符串,类似:$1$DfGmpZmj$Nhup4AQtAm6g6xLfvFElE0 ,但是输出的结果是null
,请问什么原因?该怎样做才能输出?

谢谢
搜索更多相关主题的帖子: 字符串 null 密码 
2011-04-22 23:59
linost
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2011-4-22
收藏
得分:0 
php中用system 传递到c的

$1$IKIwths6$VGDLL3AVGGGz77IKmzvtl1 传递都这样的字符串,咋就不能正常显示呢,如果中间有个. ,printf后,能显示点后面的字符串



2011-04-23 00:58
linost
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2011-4-22
收藏
得分:0 
以下是引用voidx在2011-4-23 00:55:26的发言:

给我看看你的命令行命令

我简单写:
下面两句是php 语句执行加密,然后将值传给 run这个c程序
$password=crypt($pass);
system("./run $password");

下面是输出$password 值:
main(int argc, char *argv[])
{
printf("%s",argv[1]);
}
如果加密后的字符含点.的话,可以显示一部分字符串

如果不含点就是null


2011-04-23 01:03
linost
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2011-4-22
收藏
得分:0 
谢谢楼上各位

不过要什么办法解决?
2011-04-23 10:41
linost
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2011-4-22
收藏
得分:0 
回复 10楼 voidx

但是用shell的转义符,用什么办法转义一个变量值中的特殊符号。比如:
b=`echo ${argv[1]}| awk -F "," '{print $2}'`

如果argv[1]里面含有$ ,怎样把$b 的值重定向到一个文件,我测试了只要$b的值含$ ,还是被当作变量处理。

所以现在的问题就是怎样转义一个变量值里面含有的特殊符号。


2011-04-23 12:40
快速回复:c 输出 crypt 加密过的字符串问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017099 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved