Golang Python?實(shí)現(xiàn)安全動(dòng)態(tài)開機(jī)密碼 服務(wù)器存儲(chǔ)
時(shí)間:2021-10-29 16:39:02
手機(jī)看文章
掃描二維碼
隨時(shí)隨地手機(jī)看文章
[導(dǎo)讀]作者|李秋鍵出品|?AI科技大本營(ID:rgznai100)引言:如果談到近幾年來新起的語言,必然離不開Python語言和Go語言,正如python在人工智能領(lǐng)域的發(fā)展火熱,Go語言在服務(wù)器并發(fā)處理也有著非常優(yōu)勢。Go語言(或Golang)起源于2007年,并在2009年正式對...
作者 | 李秋鍵出品 | AI科技大本營(ID:rgznai100)引言:如果談到近幾年來新起的語言,必然離不開Python語言和Go語言,正如python在人工智能領(lǐng)域的發(fā)展火熱,Go語言在服務(wù)器并發(fā)處理也有著非常優(yōu)勢。Go語言(或 Golang)起源于 2007 年,并在 2009 年正式對外發(fā)布。Go 是非常年輕的一門語言,它的主要目標(biāo)是“兼具 Python 等動(dòng)態(tài)語言的開發(fā)速度和 C/c 等編譯型語言的性能與安全性”。Go語言是編程語言設(shè)計(jì)的又一次嘗試,是對類C語言的重大改進(jìn),它不但能讓你訪問底層操作系統(tǒng),還提供了強(qiáng)大的網(wǎng)絡(luò)編程和并發(fā)編程支持。Go語言的用途眾多,可以進(jìn)行網(wǎng)絡(luò)編程、系統(tǒng)編程、并發(fā)編程、分布式編程。其中Go語言的特點(diǎn)主要集中在以下幾個(gè)方面:1、語法簡單;2、并發(fā)模型;3、內(nèi)存分配;4、垃圾回收;5、靜態(tài)鏈接;6、標(biāo)準(zhǔn)庫;7、工具鏈。并且在Google、Facebook、騰訊、百度、七牛云、京東、小米、360等大廠公司都有所使用。除了上面提到的,還有很多公司開始嘗試使用Go語言,比如美團(tuán)、滴滴、新浪等。Go語言的強(qiáng)項(xiàng)在于它適合用來開發(fā)網(wǎng)絡(luò)并發(fā)方面的服務(wù),比如消息推送、監(jiān)控、容器等,所以在高并發(fā)的項(xiàng)目上大多數(shù)公司會(huì)優(yōu)先選擇 Golang 作為開發(fā)語言。而今天我們就將使用Go語言 python語言實(shí)現(xiàn)一個(gè)動(dòng)態(tài)開機(jī)密碼的功能。其中python在這里用來設(shè)置動(dòng)態(tài)密碼,Go語言負(fù)責(zé)服務(wù)器存儲(chǔ)和數(shù)據(jù)傳輸響應(yīng)。整體程序結(jié)構(gòu)如下可見:
按照自己設(shè)定的規(guī)則進(jìn)行每天動(dòng)態(tài)修改密碼,可以提高電腦的安全性。這里我們同時(shí)還需要借助一個(gè)bat批處理程序來獲取管理員權(quán)限才能達(dá)到修改密碼的目的。導(dǎo)入庫介紹:(1)subproces庫:subprocess模塊允許你去創(chuàng)建一個(gè)新的進(jìn)程讓其執(zhí)行另外的程序,并與它進(jìn)行通信,獲取標(biāo)準(zhǔn)的輸入、標(biāo)準(zhǔn)輸出、標(biāo)準(zhǔn)錯(cuò)誤以及返回碼等。(2)getpass庫:getpass模塊提供了平臺(tái)無關(guān)的在命令行下輸入密碼的方法; 該模塊主要提供:兩個(gè)函數(shù): getuser, getpass;一個(gè)報(bào)警: GetPassWarning(當(dāng)輸入的密碼可能會(huì)顯示的時(shí)候拋出,該報(bào)警為UserWarning的一個(gè)子類) 1.1 密碼修改在這里我們設(shè)定密碼規(guī)則為每天的日期 一個(gè)特定的數(shù),獲取月日信息,為了防止規(guī)則過于簡單,我們將日期這個(gè)參數(shù)設(shè)為:當(dāng)前日期 反轉(zhuǎn)其中。比如1028轉(zhuǎn)為8201。此時(shí)參數(shù)為10288201,然后加上我們特定的數(shù),比如是20200202。其中獲取日期代碼如下:
即設(shè)定的密碼如下:
1.2 批處理獲取管理員權(quán)限
Go語言端
所使用的模塊介紹:(1)net包:net包提供了可移植的網(wǎng)絡(luò)I/O接口,包括TCP/IP、UDP、域名解析和Unix域socket。此包提供了對網(wǎng)絡(luò)原語的訪問,大部分使用者只需要Dial、Listen和Accept函數(shù)提供的基本接口;以及相關(guān)的Conn和Listener接口。crypto/tls包提供了相同的接口和類似的Dial和Listen函數(shù)。使用Dial函數(shù)和服務(wù)端建立連接;Listen函數(shù)創(chuàng)建的服務(wù)端。(2)log包:log包實(shí)現(xiàn)了簡單的日志記錄,它定義了Logger類型,其中包含格式化輸出的方法。它還有一個(gè)預(yù)定義的“標(biāo)準(zhǔn)”Logger,可以通過輔助函數(shù)Print[f|ln],F(xiàn)atal[f|ln]和Panic[f|ln]訪問,它們比手動(dòng)創(chuàng)建Logger更容易使用(Logger你可以理解為"日志記錄器")。該記錄器寫入標(biāo)準(zhǔn)錯(cuò)誤(stderr)并打印每個(gè)記錄消息的日期和時(shí)間。每條日志消息都在單獨(dú)的行中輸出:如果正在打印的消息未以換行符結(jié)尾,則記錄器將添加一條消息。Fatal函數(shù)在寫入日志消息后調(diào)用os.Exit(1), Panic函數(shù)在寫入日志消息后調(diào)用panic。(3)os包:os包提供了與平臺(tái)無關(guān)的操作系統(tǒng)功能接口。2.1 client客戶端1、首先是通過批處理文件獲取管理員權(quán)限并調(diào)用python以實(shí)現(xiàn)修改密碼的功能,并將密碼存儲(chǔ)在password.txt文本中。代碼如下:
按照自己設(shè)定的規(guī)則進(jìn)行每天動(dòng)態(tài)修改密碼,可以提高電腦的安全性。這里我們同時(shí)還需要借助一個(gè)bat批處理程序來獲取管理員權(quán)限才能達(dá)到修改密碼的目的。導(dǎo)入庫介紹:(1)subproces庫:subprocess模塊允許你去創(chuàng)建一個(gè)新的進(jìn)程讓其執(zhí)行另外的程序,并與它進(jìn)行通信,獲取標(biāo)準(zhǔn)的輸入、標(biāo)準(zhǔn)輸出、標(biāo)準(zhǔn)錯(cuò)誤以及返回碼等。(2)getpass庫:getpass模塊提供了平臺(tái)無關(guān)的在命令行下輸入密碼的方法; 該模塊主要提供:兩個(gè)函數(shù): getuser, getpass;一個(gè)報(bào)警: GetPassWarning(當(dāng)輸入的密碼可能會(huì)顯示的時(shí)候拋出,該報(bào)警為UserWarning的一個(gè)子類) 1.1 密碼修改在這里我們設(shè)定密碼規(guī)則為每天的日期 一個(gè)特定的數(shù),獲取月日信息,為了防止規(guī)則過于簡單,我們將日期這個(gè)參數(shù)設(shè)為:當(dāng)前日期 反轉(zhuǎn)其中。比如1028轉(zhuǎn)為8201。此時(shí)參數(shù)為10288201,然后加上我們特定的數(shù),比如是20200202。其中獲取日期代碼如下:
即設(shè)定的密碼如下:
1.2 批處理獲取管理員權(quán)限
Go語言端
所使用的模塊介紹:(1)net包:net包提供了可移植的網(wǎng)絡(luò)I/O接口,包括TCP/IP、UDP、域名解析和Unix域socket。此包提供了對網(wǎng)絡(luò)原語的訪問,大部分使用者只需要Dial、Listen和Accept函數(shù)提供的基本接口;以及相關(guān)的Conn和Listener接口。crypto/tls包提供了相同的接口和類似的Dial和Listen函數(shù)。使用Dial函數(shù)和服務(wù)端建立連接;Listen函數(shù)創(chuàng)建的服務(wù)端。(2)log包:log包實(shí)現(xiàn)了簡單的日志記錄,它定義了Logger類型,其中包含格式化輸出的方法。它還有一個(gè)預(yù)定義的“標(biāo)準(zhǔn)”Logger,可以通過輔助函數(shù)Print[f|ln],F(xiàn)atal[f|ln]和Panic[f|ln]訪問,它們比手動(dòng)創(chuàng)建Logger更容易使用(Logger你可以理解為"日志記錄器")。該記錄器寫入標(biāo)準(zhǔn)錯(cuò)誤(stderr)并打印每個(gè)記錄消息的日期和時(shí)間。每條日志消息都在單獨(dú)的行中輸出:如果正在打印的消息未以換行符結(jié)尾,則記錄器將添加一條消息。Fatal函數(shù)在寫入日志消息后調(diào)用os.Exit(1), Panic函數(shù)在寫入日志消息后調(diào)用panic。(3)os包:os包提供了與平臺(tái)無關(guān)的操作系統(tǒng)功能接口。2.1 client客戶端1、首先是通過批處理文件獲取管理員權(quán)限并調(diào)用python以實(shí)現(xiàn)修改密碼的功能,并將密碼存儲(chǔ)在password.txt文本中。代碼如下:
李秋鍵,CSDN博客專家,CSDN達(dá)人課作者。碩士在讀于中國礦業(yè)大學(xué),開發(fā)有taptap競賽獲獎(jiǎng)等。