建置加密與多媒體工具
CMake、Makefile、加密工具、終端錄製與硬體控制。
🏗️ 建置系統
CMake
核心內容:
- CMake 基礎語法
- 專案結構設計
- 依賴管理
- 編譯選項配置
- 跨平台建置
Makefile
核心內容:
- Makefile 語法
- 編譯參數解析
- 目標與依賴
- 變數與函數
- 實用技巧
FFI
核心內容:
- Foreign Function Interface
- 跨語言呼叫
- C/Rust/Python FFI
- 實作案例
🔐 加密與安全
AES 加密
核心內容:
- AES 加密原理
- Python pycryptodome 使用
- 加密模式選擇(CBC, GCM, CTR)
- 金鑰管理
- 實戰範例
Bitwarden
核心內容:
- Bitwarden CLI 安裝
- 密碼管理
- 命令列操作
- 自動化腳本
- 安全最佳實踐
開源授權
核心內容:
- 常見開源授權
- 授權選擇指南
- 合規性檢查
- 商業使用考量
- 授權相容性
🎬 多媒體工具
asciinema
核心內容:
- 終端錄製
- gif 動畫生成
- 分享與嵌入
- 實用技巧
PaddleOCR
核心內容:
- OCR 文字辨識
- 多語言支援
- 模型選擇
- API 使用
- 實戰應用
🔌 硬體控制
Buttplug
核心內容:
- Buttplug 協議
- Python 客戶端
- 設備連接
- 控制命令
- 實作範例
💡 實戰應用
CMake 專案範例
cmake_minimum_required(VERSION 3.10)
project(MyProject)
set(CMAKE_CXX_STANDARD 17)
# 添加可執行文件
add_executable(myapp main.cpp)
# 添加庫
add_library(mylib STATIC lib.cpp)
# 連結庫
target_link_libraries(myapp mylib)
# 編譯選項
target_compile_options(myapp PRIVATE -Wall -Wextra -O3)
Makefile 範例
CC = gcc
CFLAGS = -Wall -Wextra -O3
LDFLAGS = -lpthread
TARGET = myapp
OBJS = main.o utils.o
all: $(TARGET)
$(TARGET): $(OBJS)
$(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS)
%.o: %.c
$(CC) $(CFLAGS) -c $<
clean:
rm -f $(TARGET) $(OBJS)
.PHONY: all clean
AES 加密範例
from Crypto.Cipher import AES
from Crypto.Random import get_random_bytes
from Crypto.Util.Padding import pad, unpad
# 生成金鑰
key = get_random_bytes(32) # AES-256
# 加密
cipher = AES.new(key, AES.MODE_CBC)
ct_bytes = cipher.encrypt(pad(b"Secret message", AES.block_size))
iv = cipher.iv
# 解密
cipher = AES.new(key, AES.MODE_CBC, iv)
pt = unpad(cipher.decrypt(ct_bytes), AES.block_size)
print(pt.decode('utf-8'))
asciinema 使用
# 開始錄製
asciinema rec demo.cast
# 播放
asciinema play demo.cast
# 轉換為 gif
docker run --rm -v $PWD:/data asciinema/asciicast2gif demo.cast demo.gif
Bitwarden CLI
# 登入
bw login
# 解鎖
bw unlock
# 搜尋密碼
bw list items --search github
# 取得密碼
bw get password github.com
# 生成密碼
bw generate -ulns --length 20
最後更新: 2025-12-01