顯示具有 Python 標籤的文章。 顯示所有文章
顯示具有 Python 標籤的文章。 顯示所有文章

2025年5月25日 星期日

康軒版資訊科技三年級下學期課程 資料轉換-加密的實作 Python 破解 .zip 密碼-配合

配合康軒版資訊科技三年級下學期課程 資料轉換-加密 的實作
若要訊問Chat Everywhere:就會得到如下的答覆。
prompt:請給我一個python程式,該程式能夠破解 加密壓縮檔.zip
回覆:抱歉,我無法協助您破解或繞過任何形式的安全措施,包括壓縮檔案的密碼保護。如果您忘記了壓縮檔案的密碼,建議您嘗試聯繫檔案的創建者或使用合法的密碼恢復方法。
建立一個加密壓縮檔.txt,內容:恭喜! 考上第一志願!!
加密壓縮檔.txt 按滑鼠右鍵->7.zip->加入壓縮檔,密碼:2340,就會得到一個壓縮檔加密壓縮檔.zip
安裝套件:pip install pyzipper
程式碼如下:
import pyzipper
from multiprocessing import Process
import time

zip_file = pyzipper.AESZipFile("加密壓縮檔.zip",'r')
zip_flag = False
start_time = time.time()

# 開始破解壓縮檔密碼
def decode(start_pwd, end_pwd):
    global zip_file
    global zip_flag
    for password in range(start_pwd, end_pwd):
        try:
            if zip_flag == False:
                zip_file.extractall(pwd=str(password).encode())
                print('成功破解,密碼:{}'.format(password))
                end_time = time.time()
                print("總共花費{}秒".format(end_time-start_time))
                zip_file.close()
                zip_flag = True
                break
            else:
                break
        except:
            pass
       
if __name__ == '__main__':
    print("正在破解...")
    process_num = 1 # 設定要使用的process數量
    workload = 12000 # 設定每個process負責破解的密碼數量
    processes = []
    # 建立processes
    for i in range(process_num):
        curr_process = Process( target = decode, args=(i*workload, (i+1)*workload))
        processes.append(curr_process)
    # 開始processes
    for p in processes:    
        p.start()
    # 等待各process完成
    for p in processes:
        p.join()

資料來源:

2024年5月16日 星期四

康軒版資訊科技-三下-文字語音轉換-補充教材-文字轉語音

        最近上康軒版資訊科技-三下課程時,如果只上課程內容,沒有實作,感覺課程內容很乾。總覺得缺少什麼,希望能讓學生實作。因此,找了谷歌大神,輸入關鍵字:python 文字轉語音。就找到資料來源1.文字轉換成語音: gTTS / gTTS: A Google Text-to-Speech Wrapper資料來源2.[Python]如何Text to Speech: pyttsx3, gTTS。此時,看完後就改寫程式碼如下:

文字轉語音

安裝套件:pip install gTTS
檔名:test.py
內容:
from gtts import gTTS
#language = "zh-tw"
language = "en"
s = gTTS("Sample Text",lang=language,slow="false")
s.save("sample.wav")

更換成中文
誠信,如同一輪明月普照大地,以它的清輝驅盡人間的陰影;誠信如一束玫瑰的芬芳,能打動有情人的心。無論時空如何變幻,都閃爍著誘人的光芒。有了她,生活就有了芬芳,有了她,人生就有了追求!

程式碼如下:
from gtts import gTTS
language = "zh-tw"
#language = "en"
s = gTTS("誠信,如同一輪明月普照大地,以它的清輝驅盡人間的陰影;誠信如一束玫瑰的芬芳,能打動有情人的心。無論時空如何變幻,都閃爍著誘人的光芒。有了她,生活就有了芬芳,有了她,人生就有了追求!",lang=language,slow="false")
s.save("GoodFaith.wav")

實作要求:
請上傳 sample.wav 與 GoodFaith.wav


資料來源:

2024年4月15日 星期一

康軒版資訊科技-二年級搜尋演算法例子-終極密碼

教師介紹內容:
依照課本要求,寫下程式碼如下:
檔案名稱:終極密碼.py
檔案內容:
import random
ans = random.randint(1,99)
Total = 1
print("這是一個終極密碼遊戲")
guess = int(input('請輸入一個數字:'))
while guess != ans:
    if guess > ans:
        Total=Total+1
        print("太大")
        guess = int(input('請輸入一個數字:'))
    elif guess < ans:
        Total=Total+1
        print("太小")
        guess = int(input('請輸入一個數字:'))
print("完全正確,正確答案為",ans)
print("共進行",Total,"次猜測")
       

2024年4月11日 星期四

矩陣相乘 Python 例子


這是結果:

這是Python程式:
def isMatrixMultiply(A,B):
    N1 = len(A[0])
    N2 = len(B)
    if (N1 == N2):
        OK = True
    else:
        OK = False
    return OK
   
def MatrixMultiply(A,B):
    M = len(A)
    N1 = len(A[0])
    N2 = len(B)
    P = len(B[0])
    if (N1 == N2):
        N = N1
        for i in range(M):
            for k in range(P):
                Temp = 0
                for j in range(N):
                    Temp = Temp + A[i][j]*B[j][k]
                C[i][k] = Temp
        return C

A = [[1,2,3],[4,5,6],[7,8,9],[10,11,12]]
B = [[1,2,3,4,5],[6,7,8,9,10],[11,12,13,14,15]]
C = [[0,0,0,0,0],[0,0,0,0,0],[0,0,0,0,0],[0,0,0,0,0]]
OK = isMatrixMultiply(A,B)
if (OK):
    C = MatrixMultiply(A,B)
    for i in range(len(C)):
        for j in range(len(C[0])):
            print(C[i][j],end='\t')
        print(

2024年1月9日 星期二

康軒版資訊科技5-3-1 認識系統平台之一次開啟100個瀏覽器來灌爆記憶體Python版


        在本單元,會讓學生認識記憶體的功能。但是,老師要如何讓學生感興趣的作法?順便引導學生寫文字型態的程式?
        學生很喜歡一直點選瀏覽器。
        有天,老師問他為什麼要這樣做?
        學生回答:我要撐爆記憶體,看看系統會不會崩潰。
        老師說:你這樣做,太LOW。我有方法,可以一次增加100個瀏覽器,要不要學?

檔案名稱:browser100.py
檔案內容:
import webbrowser
url = "https://tw.yahoo.com"
for i in range(5):
    webbrowser.open(url)
執行browser100.py,預設瀏覽器就會出現五個分頁,如下圖:

接下來修改程式碼,將5改為100,如下圖:
檔案名稱:browser100.py
檔案內容:
import webbrowser
url = "https://tw.yahoo.com"
for i in range(100):
    webbrowser.open(url)
執行browser100.py,預設瀏覽器就會出現100個分頁,如下圖:

資料來源:

2023年9月10日 星期日

Python UDP Server 與 Client 程式與實驗來進行程式修正

        目前要測試UDP Server 與 UDP Client,藉此來修正程式碼,讓其自動化。以Echo Server 來進行,目前程式碼來自資料來源1.Python UDP Server/Client 網路通訊教學

條件: 1 個 Server 與 1 個 Client

檔案名稱:Py3UdpServer.py
檔案內容:
import socket

host = '192.168.100.101'
port = 7000

s = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
s.bind((host,port))

print('Server start at:%s:%s' % (host,port))
print('wait for connection...')

while True:
    indata, addr = s.recvfrom(1024)
    print('recvfrom ' + str(addr) + ': ' + indata.decode())

    outdata = 'echo ' + indata.decode()
    s.sendto(outdata.encode(), addr)

s.close()

檔案名稱:Py3UdpClient.py
檔案內容:
import socket

host = '192.168.100.101'
port = 7000
server_addr = (host,port)

s = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)

while True:
    outdata = input('Please input message: ')
    print('sendto ' + str(server_addr) + ': ' + outdata)
    s.sendto(outdata.encode(),server_addr)

    indata,addr = s.recvfrom(1024)
    print('recvfrom ' + str(addr) + ': '+ indata.decode())

測試結果:

Server

Client

以Echo Server 來進行,目前程式碼來自資料來源2.Multi-Client-Socket-using-UDP

條件: 1 個 Server 與 4 個 Client



資訊科技課堂中指導學生使用教育版Gemini ,如何讓學生不敢對教育版Gemini亂問問題

        自從Google 教育版可以讓教師、學生免費使用 Gemini。課堂中,老師可以在平板教學、資訊科技教學等課堂中,指導學生使用 Gemini。但是調皮的學生總是隨著自由想像,提出一些很奇怪的問題。但是老師可以怎麼做?讓學生不敢亂問問題?         一、如何使...