Google搜查列

 

2008年2月18日 星期一

使用perl驗證系統身份

如果有要作跟系統的shadow密碼檔作驗證,可以使用Crypt::PasswdMD5套件幫忙的

要先安裝perl-Crypt-PasswdMD5

如果你的是RH或FC系列,可以使用YUM安裝

#yum install perl-Crypt-PasswdMD5

在使用前,請確認你有讀取shadow的權限

試用程式:
#!/usr/bin/perl

#getpw*();
use Crypt::PasswdMD5 qw(unix_md5_crypt);
print "輸入使用者:";
$user = <>;
chomp $user;
print "輸入密碼:";
$pass = <>;
chomp $pass;

$line = `cat /etc/shadow | grep $user`;
if($line eq ''){
print "沒有這使用者\n";}else{
@shadow = split(/:/,$line);
$passwd_unix = $shadow[1];
$key = substr($passwd_unix,3,8),"\n";
$passwd_perl = unix_md5_crypt($pass,$key),"\n";

print 'passwd_unix = ',$passwd_unix,"\n";
print 'passwd_perl = ',$passwd_perl,"\n";

if ($passwd_unix eq $passwd_perl){print "驗證成功\n";}else{print "驗證失敗\n";}
}

參考網站:http://blog.pixnet.net/gisanfu/post/8179025

2008年2月4日 星期一

新研究之一,電話來電控電源

很久以前就有的一個問題我很想要解決了,就是ip分享器或一些Switch HUB如果熱當機,又剛好人沒有在家裡或公司裡
那熱當機的話就只好到機器前面,把電源重開,這樣就很累人了

萬一有長假期,又要跑回公司重開,光用說的累了

別人的家電控制系統太高LEVEL,有點大材小用
自己找了一下,找到4n25小晶片(PDF
datasheet)光耦和加上小電路就可以用了
結合之前作了冷氣搖控器,同一個8051就可以一起工作了

所以設計了下圖的小電路:
成品圖:




























因為是跟8051連線的,給8051控制
所以有4線連接
+:是8051的5V電源連線
回:是測試是否有來電,有來電就回傳5v道通,告知8051有來電
C:控制4N25上的斷電器跳躍,0為OFF,1為ON
-接地:接8051電路接地

8051單晶片上的程式碼(組合語言):
ORG 00H
JMP START
ORG 50H
START: SETB P0.0
SETB P0.1
;註解:冷氣開關程式
START1: CLR P1.0
CALL DELAY1
SETB P1.0
MOV R5,#60
CALL D11
CLR P1.0
CALL DELAY1
SETB P1.0
CALL DELAY2
JMP START1
;註解:電源控制開關副程式
APP1: CLR P0.1
MOV R5,#250
CALL D11
SETB P0.1
JMP START1

;註解:五秒鐘空迴圈副程式
DELAY1: MOV R5,#30
D11: MOV R6,#40
D12: MOV R7,#249
DJNZ R7,$
DJNZ R6,D12
DJNZ R5,D11
RET

;註:空迴圈監控來電接腳P0.0副程式30分鐘
DELAY2: MOV R4,#45
D21: MOV R5,#200
D22: MOV R6,#200
D23: MOV R7,#200
D24: CLR P0.0
JB P0.0,APP1
DJNZ R7,D24
DJNZ R6,D23
DJNZ R5,D22
DJNZ R4,D21
RET

END

上面還有指示燈,嘿~

不過呢,這個系統是沒有身份驗證的,也就是任何人打電話來,都會重開電源和冷氣

我是用家裡的或公司的ADSL線路,基本上是不公開的

如果要作驗證密碼,那要加上HT9170等,把電話上的按鍵傳到8051分析,驗證通過後再作其他所需要的動作

運動過程影片:

Google Analytics