使用PHP和Python计算MD5值

来源:互联网 发布:微软办公软件 win10 编辑:程序博客网 时间:2024/06/05 15:35

近日因为有一个需求,要在多台PC上为普通用户更改随机密码,同时不依赖于PC,单独计算出此时此刻PC的密码。

于是用python写了一个改密的软件,在PC本地以管理员运行。

在服务器上原本打算也用python写,之后显示在页面上,但是由于之前配置的都是LAMP环境,没有配python,而PHP在默认情况下也不能直接调用python脚本。

一不做二不休,干脆把算法又用PHP重写了一下。

程序的运行原理如下:


PC端关键代码:

#coding=utf-8import osimport datetimeimport timeimport hashlib#计算md5函数def calc_md5(text):tmp = hashlib.md5()tmp.update(text.encode('utf-8'))return tmp.hexdigest()#从文件获取设备idwith open('pc.id') as pcid:randomid = pcid.read()#print(randomid)#获取当前年月日org = datetime.date.today()#将年月日做加法,生成一个新的整数passwd_org = org.year + org.month + org.day#将上一部生成的数字和pc.id和自定义的key拼接成一个字符串passwd_org = str(passwd_org) + randomid + "zhaojianxiong"#print(passwd_org)#计算密码passwd = calc_md5(passwd_org)#对md5截取字符,生成改密密码passwd = passwd[::4]#print(passwd)#执行强制改密,需要以管理员身份运行os.system('net user operater ' + passwd)time.sleep(5)os.system('cls')exit()

服务器端流程:


服务器端代码(前台html):

<form action="calc.php" method="POST">Input Device_ID:<br><input type="text" name="pcid"><br><br><input type="submit" value="Submit"></form>

服务器端代码(PHP):

<?phpdate_default_timezone_set('PRC');echo "服务器时间: " . date("Y-m-d H:i:s") . "<br />";echo "密码生成时间: ";system("date | awk '{print$6,$2,$3,$4}'");echo "<br />";$a = intval(date("Y"));$b = intval(date("m"));$c = intval(date("d"));$tmp = $a + $b +$c;$rdmid = utf8_encode($_POST["pcid"]);$key = utf8_encode('zhaojianxiong');$tmp = utf8_encode($tmp);$passwd = $tmp.$rdmid.$key;#echo $passwd;$tmp = md5(utf8_encode($passwd));echo substr($tmp,0,1);echo substr($tmp,4,1);echo substr($tmp,8,1);echo substr($tmp,12,1);echo substr($tmp,16,1);echo substr($tmp,20,1);echo substr($tmp,24,1);echo substr($tmp,28,1);system("echo \"\n\" ");?>


原创粉丝点击