<!-- title: 零基础装通Claude Code造密码管家 -->

# 零基础装通 Claude Code 造密码管家

## 概述

本教程是 Claude Code 训练营的入门第一课，面向**完全零基础**的读者：从未用过命令行 AI 编码助手、甚至没怎么写过代码的人，也能跟着一步步走完。学完之后你将能够：在自己的电脑上把 Claude Code 装好、登录、跑通第一次会话；理解 REPL、斜杠命令、计划模式、`CLAUDE.md` 记忆这几块核心拼图；并用一句中文需求，驱动 Claude Code 从零生成一个**可运行、可复用的命令行密码管家**——既能生成强随机密码，又能用业界标准的 zxcvbn 算法给任意密码打分并给出改进建议。适用人群：想体验 AI 编程的产品经理、运维、学生、以及任何对"让 AI 帮我写工具"心动却不知从何下手的人。

## 前置条件

在动手之前，请确认你具备以下条件（缺一不可，但门槛很低）：

- **一台能联网的电脑**：Windows、macOS 或 Linux 均可；Windows 用户推荐使用 WSL2（Windows 子系统 Linux）以获得最佳体验，但不强制。
- **一个终端**：macOS 自带"终端"App；Windows 推荐安装 Windows Terminal + WSL2；Linux 自带。如果你从没打开过终端，把终端理解成"一个只能用键盘、纯文本对话的窗口"即可。
- **Python 3.8 及以上**（本课项目需要）：在终端输入 `python3 --version`，能看到版本号即可。Windows 若提示找不到命令，到 python.org 安装并勾选 "Add to PATH"。
- **一个 Claude 账号**：Claude Code 需要 Claude Pro / Max 订阅、Claude Console（API）账户，或受支持的云厂商通道，三选一。没有的话，先注册一个 Pro 试用是最省事的。
- **Git（可选但强烈推荐）**：macOS/Linux 一般自带；Windows 建议安装 Git for Windows，这样 Claude Code 在 Windows 上能调用 Bash 工具。

> 一句话门槛：能开机、能联网、有 Claude 账号。其余的，交给这堂课。

---

## 第 1 步：安装 Claude Code

官方在 2026 年主推**原生安装（Native Install）**，这是最推荐的方式，因为它会**在后台自动更新**，让你始终停留在最新版本，省去手动升级的烦恼。

**macOS / Linux / WSL**，打开终端粘贴执行：

```bash
curl -fsSL https://claude.ai/install.sh | bash
```

**Windows PowerShell**（注意是 PowerShell，不是老的 CMD）：

```powershell
irm https://claude.ai/install.ps1 | iex
```

> 常见坑：如果你在 PowerShell 里看到 `'irm' is not recognized`，说明你其实在 CMD 窗口里；反之在 CMD 里看到 `The token '&&' is not valid`，说明你其实在 PowerShell 里。看提示符就能区分——PowerShell 是 `PS C:\>`，CMD 是 `C:\>`。

如果你更习惯包管理器，也可以：

```bash
# macOS（Homebrew）
brew install --cask claude-code
# Windows（WinGet）
winget install Anthropic.ClaudeCode
```

**预期结果**：安装完成后，在终端输入 `claude --version`，会打印出一行版本号，例如 `2.x.x`。看到版本号就说明二进制已经进入你的 PATH，随时可调用。

**常见问题**：

- 安装脚本报 `403` 或 `syntax error near unexpected token '<'`：多半是网络代理或 curl 被拦截，换个网络环境或在企业网内放行 `claude.ai` 即可。
- 公司电脑不让执行远程脚本：可以用 Homebrew / WinGet 这种受管安装方式，或让 IT 把 Claude Code 加进白名单。

---

## 第 2 步：登录账号，开启第一次会话

装好之后，在任意目录下输入：

```bash
claude
```

首次运行会进入**登录引导**。你会看到几个选项，根据你的账号类型选择：

- 选 **Claude（Pro/Max 订阅）**：会打开浏览器跳到 claude.ai 完成授权，回到终端即登录成功。这是大多数个人用户的最省事路径。
- 选 **Console / API Key**：粘贴你在 console.anthropic.com 申请的 API Key，按用量计费，适合做自动化。

登录成功后，你会看到一个交互式输入框，光标在闪——这就是 Claude Code 的 **REPL（交互式对话界面）**，类似一个"住在终端里的聊天窗口"，但它能真正读你的文件、改你的代码、跑你的命令。

先打两个基础斜杠命令（slash command，以 `/` 开头）熟悉一下：

- `/help`：列出所有可用命令，是你的"作弊小抄"。
- `/clear`：清空当前对话上下文。每开一个新任务前按一下，能让 Claude 不被旧话题干扰。

**预期结果**：终端出现欢迎横幅和一个可输入的提示符，光标稳定闪烁，说明你已经"进入"了 Claude Code。

---

## 第 3 步：建立一个干净的练习项目

跟 AI 编程，最重要的习惯之一是**给它一个明确的工作目录**，而不是在你装满文件的 home 目录里乱翻。我们新建一个专门的项目文件夹：

```bash
mkdir ~/pwkeep
cd ~/pwkeep
```

进入目录后再启动（如果刚才 `claude` 还开着，先 `/clear`）：

```bash
claude
```

Claude Code 启动时会感知到当前目录。从此你说"在这个项目里加个功能"，它就知道边界在哪。

**预期结果**：REPL 顶部的状态栏会显示当前工作目录是 `~/pwkeep`，里面空空如也，准备开工。

---

## 第 4 步：用一句中文下需求——让 AI 写出第一版

现在是见证奇迹的时刻。在 REPL 里直接用自然语言输入（**不需要**你懂 Python、不需要你写任何代码）：

```
帮我用 Python 写一个命令行密码生成器，名字叫 pwkeep。要求：
1. 默认生成 16 位密码，包含大小写字母、数字、符号
2. 用 -l 指定长度，-n 指定生成几个
3. 加 --no-symbols 去掉符号
4. 安全起见用 secrets 模块而不是 random
请先告诉我你打算怎么做（计划），再动手写。
```

> 这里有个**新手必学**的小技巧：末尾那句"先告诉我计划再动手"。Claude Code 有一个**计划模式（Plan Mode）**，你可以用 `Shift + Tab` 在"直接执行 / 先规划后执行"之间切换。在计划模式下，它会先列出"我打算建哪些文件、写哪些函数"，等你点头再真正改文件。对零基础者，这等于多了一道"确认"保险，避免它一上来就大刀阔斧。

Claude 大概率会回复一个简短计划，例如：

```
计划：
- 新建 pwkeep.py，用 argparse 解析参数
- 用 secrets.choice 从字符池随机抽取
- 保证每类字符至少出现一个
- 最后 shuffle 打乱
确认后我开始写。
```

你回一个"开始"或按回车确认。几秒钟后，你会看到终端里逐行"打印"出 `pwkeep.py` 的完整代码——这就是 Claude Code 在**为你写文件**，右侧往往还会提示它调用了 Write 工具。

**预期结果**：项目目录下出现 `pwkeep.py`，里面有几十行可读的 Python 代码。你不用读懂每一行，但你能在 REPL 里直接让它"解释一下第 X 行"。

**常见问题**：

- 它直接动手没给计划？说明你不处在计划模式。按 `Shift + Tab` 切过去，或在需求里明确写"先给计划"。
- 它问你要不要装某个库？此时还没到，下一节再说。

---

## 第 5 步：迭代升级——加密码强度检测

第一版只是"生成器"。一个真正的密码管家，还应该能**告诉你某个密码到底有多强**。这一步演示 Claude Code 最爽的体验：**增量对话、越改越强**，而不用每次重起炉灶。

继续在同一个 REPL 里（上下文还连着）输入：

```
很好。现在再加一个 --check 参数：当用户传 --check 某个密码时，
不要生成新密码，而是评估这个密码的强度，给出 0-4 分和改进建议。
请用业界标准的 zxcvbn 库来做评估（它在 PyPI 上叫 zxcvbn），
但要注意：如果用户机器上没装这个库，要优雅退化到一个简单的启发式打分，
而不是直接崩溃。
```

注意这段需求里的几个**工程化要点**，都是真实开发会遇到、而 AI 能帮你处理好的：

1. **用第三方库** zxcvbn——它不是 `random` 数个位数那种玩具，而是 Dropbox 开源的、基于真实密码破解模式的评估器，输出 0~4 的分数、预计破解时长和改进建议。
2. **优雅退化**——依赖缺失时不崩，是成熟工具的标志。

Claude 会先把 `zxcvbn` 的 `import` 包在 `try/except ImportError` 里，再补一个启发式 `strength()` 函数。它可能还会提醒你装依赖：

```bash
pip install zxcvbn
```

照做即可（如果你用虚拟环境更好，零基础可暂时跳过这层）。

**预期结果**：现在你的 `pwkeep.py` 既能 `python3 pwkeep.py -l 20` 生成密码，也能 `python3 pwkeep.py --check 'P@ssw0rd123'` 给老密码体检并吐出"预计破解时长"和改进建议。

**常见问题**：

- 报 `ModuleNotFoundError: No module named 'zxcvbn'`：说明你没装或装到了别的 Python 环境。用 `python3 -m pip install zxcvbn` 装到同一个解释器。
- 想要中文的强度文案（极弱/弱/一般/强/极强）：直接对 Claude 说"把 0~4 分映射成中文标签"，它秒改。

---

## 第 6 步：运行、测试、修 Bug

工具写完不算完，**能跑通才算完**。在 REPL 里，你可以直接让 Claude 自己跑一遍验证：

```
跑一下这三条命令，确认输出正常：
python3 pwkeep.py
python3 pwkeep.py -l 24 -n 3
python3 pwkeep.py --check 'qwerty'
把每条的输出贴给我看。
```

Claude Code 会调用 **Bash 工具**在终端里执行这些命令，并把结果原样回贴给你。如果第一条命令因为"没有可写权限"或"shebang 缺失"而失败，它通常会**自己发现错误并尝试修复**，不需要你插手——这正是 Agent 模式的魅力：它在"执行→观察→修正"的循环里自洽运转。

**预期结果**：你看到三段输出。生成类命令每次结果都不同（因为是随机的），但都会带一个 `[x/4 强度标签]` 的后缀；`--check qwerty` 这种弱密码会被判 0 分并给出"太短、是常见键盘序列"之类的建议。

**常见问题**：

- Windows 下 `python3` 找不到：改用 `py pwkeep.py` 或 `python pwkeep.py`。
- 想把它变成全局命令（任意目录敲 `pwkeep` 就能用）：让 Claude "给脚本加 shebang 并教我怎么做成命令行别名 / 装到 PATH"，它会给出 `chmod +x`、软链或 `pipx install` 等方案。

---

## 第 7 步：把项目记忆写进 CLAUDE.md

Claude Code 有一个**长期记忆机制**：项目根目录下的 `CLAUDE.md` 文件，会被它在每次会话开始时自动读取。你可以把"这个项目是什么、有什么约定、依赖怎么装"写进去，这样下次甚至换了电脑，它也能秒懂上下文。

最快的办法是直接让 Claude 帮你生成：

```
帮我在项目根目录生成一个 CLAUDE.md，记录：项目用途、运行方式、
依赖（zxcvbn，可选）、未来想加的功能清单（比如批量生成并导出 CSV、
密码短语 passphrase 模式）。用简洁的中文。
```

你也可以直接输入 `/init`，Claude Code 会扫描项目并自动起草一份初始 `CLAUDE.md`，你再让它润色。

**预期结果**：项目里多出 `CLAUDE.md`，里面是结构化的项目说明。下次重启 `claude`，它会"记得"这个项目是干嘛的——这就是从"一次性问答"升级到"长期协作伙伴"的关键一步。

---

## 实战案例：完整可运行的 pwkeep.py

下面是经过上述流程打磨后的完整代码，可直接保存为 `pwkeep.py` 运行。它体现了"生成 + 体检 + 优雅退化"三件套，是一个能拿去真实使用、并方便继续扩展的迷你工具：

```python
#!/usr/bin/env python3
"""pwkeep —— 命令行密码生成与强度检测工具"""
import argparse
import secrets
import string

# 尽量用业界标准的 zxcvbn；装不上则优雅退化
try:
    from zxcvbn import zxcvbn
    HAVE_ZXCVBN = True
except ImportError:
    HAVE_ZXCVBN = False

SETS = {
    "lower": string.ascii_lowercase,
    "upper": string.ascii_uppercase,
    "digits": string.digits,
    "symbols": "!@#$%^&*-_=+?",
}
LABELS = ["极弱", "弱", "一般", "强", "极强"]


def generate(length=16, use_sets=None, exclude_similar=True):
    use_sets = use_sets or list(SETS)
    pool = "".join(SETS[s] for s in use_sets)
    if exclude_similar:  # 去掉容易混淆的 I l 1 O 0 o
        for ch in "Il1O0o":
            pool = pool.replace(ch, "")
    if not pool:
        raise ValueError("字符池为空，无法生成密码")
    pwd = [secrets.choice(SETS[s]) for s in use_sets]      # 每类至少一个
    pwd += [secrets.choice(pool) for _ in range(length - len(pwd))]
    secrets.SystemRandom().shuffle(pwd)                    # 安全洗牌
    return "".join(pwd[:length])


def strength(password):
    if not HAVE_ZXCVBN:
        score = 0
        if len(password) >= 12: score += 1
        if len(password) >= 16: score += 1
        if any(c.isupper() for c in password) and any(c.islower() for c in password): score += 1
        if any(c.isdigit() for c in password): score += 1
        if any(not c.isalnum() for c in password): score += 1
        return {"score": min(score, 4), "suggestions": ["安装 zxcvbn 可获得更准确的评估"],
                "source": "heuristic"}
    res = zxcvbn(password)
    return {
        "score": res["score"],
        "crack_time": res["crack_time_display"],
        "suggestions": res["feedback"]["suggestions"],
        "source": "zxcvbn",
    }


def main():
    p = argparse.ArgumentParser(prog="pwkeep", description="密码生成与强度检测")
    p.add_argument("-l", "--length", type=int, default=16, help="密码长度，默认 16")
    p.add_argument("-n", "--count", type=int, default=1, help="一次生成几个，默认 1")
    p.add_argument("--no-symbols", action="store_true", help="不含符号")
    p.add_argument("--no-digits", action="store_true", help="不含数字")
    p.add_argument("--check", metavar="PWD", help="检测某个已有密码的强度")
    args = p.parse_args()

    if args.check:
        info = strength(args.check)
        print(f"密码强度: {info['score']}/4 ({LABELS[info['score']]})  [{info['source']}]")
        if "crack_time" in info:
            print(f"预计破解时长: {info['crack_time']}")
        for s in info.get("suggestions", []):
            print(f"  建议: {s}")
        return

    use = [s for s in SETS
           if not (s == "symbols" and args.no_symbols)
           and not (s == "digits" and args.no_digits)]
    for _ in range(args.count):
        pw = generate(args.length, use)
        info = strength(pw)
        print(f"{pw}  [{info['score']}/4 {LABELS[info['score']]}]")


if __name__ == "__main__":
    main()
```

跑起来是这样的：

```bash
$ python3 pwkeep.py -l 20 -n 2
7tGq#mK2vR-pXb9LwzF@  [4/4 极强]
cY3$fN8kP&hJvT2xQwL_  [4/4 极强]

$ python3 pwkeep.py --check 'qwerty'
密码强度: 0/4 (极弱)  [zxcvbn]
预计破解时长: 即刻
  建议: 增加 3 个及以上字符；避免键盘序列等常见模式
```

---

## 工作流程图

下面这张图还原了你从安装到产出工具的完整心智路径，也是本课的"地图"：

```mermaid
flowchart TD
    A[第1步 安装 Claude Code<br/>原生脚本 / Homebrew / WinGet] --> B[第2步 登录账号<br/>Pro Max 订阅 或 API Key]
    B --> C[第3步 建干净项目目录<br/>mkdir cd claude]
    C --> D{Shift+Tab 切换<br/>计划模式?}
    D -- 先看计划 --> E[REPL 里用一句中文描述需求<br/>默认16位 含大小写数字符号]
    D -- 直接执行 --> E
    E --> F[Claude 起草计划并写文件<br/>Write 工具生成 pwkeep.py]
    F --> G[第5步 增量迭代<br/>加 --check 强度检测 + zxcvbn + 优雅退化]
    G --> H[第6步 让 Claude 自跑验证<br/>Bash 工具执行并回贴结果]
    H --> I{通过?}
    I -- 否 --> G
    I -- 是 --> J[第7步 写 CLAUDE.md<br/>沉淀项目记忆]
    J --> K[可复用的密码管家 CLI]

    style A fill:#e1f5ff
    style K fill:#e8f5e9
    style D fill:#fff3e0
```

---

## 常见问题汇总（FAQ）

- **Q：每次都要 `/clear` 吗？** A：换话题时建议清，同一任务里连续对话则别清——清了上下文就断了，Claude 会"失忆"。
- **Q：它会不会乱删我的文件？** A：默认权限模式下，写文件、跑命令前会征求你同意（弹确认）。你可以按 `2` 选择"始终允许"某类操作来减少打扰，但零基础阶段建议**逐条确认**，建立对它的信任边界。
- **Q：免费额度够用吗？** A：Pro 订阅含 Claude Code 用量配额，做本课这种小项目绰绰有余；重度自动化才需要考虑 Max 或 API 计费。
- **Q：中文需求它真能听懂？** A：完全可以，中英文混写也行。需要时让它"用中文解释代码"即可。

---

## 延伸阅读

- **Claude Code 官方文档 Quickstart**：权威的安装与首会话指引，本课的安装步骤即源自此处。
- **`/help` 与 `/config`**：进入 REPL 后亲手敲一遍，比任何教程都直观。
- **CLAUDE.md 与记忆机制**：理解它，你就能把"一次性问答"升级为"长期项目搭档"。
- 下一步可尝试：给 pwkeep 加"密码短语（passphrase）模式"、"批量导出 CSV"、"加密保存到本地仓库"——这些是留给你的扩展作业。

---

## 训练营适用性评估

- **适合的训练营类型**：AI 编程入门营、企业数字化转型通识营、运维/测试/产品岗位的"AI 提效"速成营、高校通识选修课。**不适合**纯算法/底层系统编程营（本课重在工具使用而非算法深度）。
- **预计教学时长**：**1.5～2 小时**（含动手）。其中安装登录约 20 分钟、第一版生成约 25 分钟、强度检测迭代约 30 分钟、答疑与扩展约 25 分钟。
- **学员产出物**：每人一个可运行的 `pwkeep.py` + `CLAUDE.md`，可带回家继续用、继续改，有成就感。
- **难度系数**：★☆☆☆☆（操作）/ ★★☆☆☆（理解）。零代码基础可完成；若要读懂每一行 Python，需要额外 1 小时讲解。

---

## 参考来源

1. [Quickstart - Claude Code Docs](https://code.claude.com/docs/en/quickstart) — Anthropic 官方快速上手文档，本课安装命令、登录流程、计划模式等核心步骤的权威出处。
2. [Claude Code Tutorial for Beginners - Complete 2026 Guide](https://codewithmukesh.com/blog/claude-code-for-beginners/) — 2026 年中更新的完整入门指南，覆盖 CLAUDE.md、Plan Mode、权限模式等概念的进阶讲解。
3. [Claude Code Tutorial for Beginners 2026: From Installation to Building Your First Project (dev.to)](https://dev.to/ayyazzafar/claude-code-tutorial-for-beginners-2026-from-installation-to-building-your-first-project-1lma) — 强调从安装到首个项目的连贯实操路径，适合零基础对照练习。
4. [zxcvbn-python · PyPI](https://pypi.org/project/zxcvbn-python/) — 本课密码强度检测所用库的官方页面，Dropbox 开源的真实破解模式评估器，返回 0~4 分、破解时长与改进建议。

> [!tip] 51学通信知识星球
> **星主：爱卫生**（微信：gprshome201101）——公众号「51学通信」创办者，19 年通信行业运维与讲师经验，著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书（各大电商平台有售）。
> **星球定位**：深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域，主打运维岗位与信令分析。
> **当前规模**：5200 篇主题 / 990 个回答，198 元/年。
> **加入福利**：加入星球后请加爱卫生微信，拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题，另有群内分享。
> **AI 加持**：51学通信知识星球已作为 skill 接入 WorkBuddy，使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例，做总结、找文档和 PPT 等场景全覆盖。

![51学通信知识星球海报-扫码加入](https://wiki.500nian.com/images/zhixingqiu_qrcode.png)
