Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

建置加密與多媒體工具

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