{
  "schemaVersion": "1.0",
  "item": {
    "slug": "crypto-2",
    "name": "Pywayne Crypto",
    "source": "tencent",
    "type": "skill",
    "category": "AI 智能",
    "sourceUrl": "https://clawhub.ai/wangyendt/crypto-2",
    "canonicalUrl": "https://clawhub.ai/wangyendt/crypto-2",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/crypto-2",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=crypto-2",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/crypto-2"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/crypto-2",
    "agentPageUrl": "https://openagent3.xyz/skills/crypto-2/agent",
    "manifestUrl": "https://openagent3.xyz/skills/crypto-2/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/crypto-2/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Pywayne Crypto",
        "body": "加密解密工具集，支持对称加密、自定义密码和代码混淆保护。"
      },
      {
        "title": "Quick Start",
        "body": "from pywayne.crypto import encrypt, decrypt\n\n# 基础加密/解密\nencrypted = encrypt(\"Hello World\")\ndecrypted = decrypt(encrypted)\nprint(decrypted)  # 输出: Hello World\n\n# 使用自定义密码加密\nencrypted = encrypt(\"Secret message\", \"my_password\")\ndecrypted = decrypt(encrypted, \"my_password\")\nprint(decrypted)  # 输出: Secret message"
      },
      {
        "title": "encrypt - 加密函数",
        "body": "加密字符串或字节数据。\n\n# 文本加密\nencrypted = encrypt(\"机密信息\", \"password\")\n# 字节加密\nbyte_data = b\"binary data\"\nencrypted = encrypt(byte_data, \"password\")\n\n参数：\n\n参数类型说明textstr or bytes要加密的文本数据或字节数据passwordstr可选，自定义密码。不提供时使用默认密钥\n\n返回值：str - base64 编码的加密字符串\n\n参数类型错误处理：\n\n当输入不是 str 或 bytes 时抛出 ValueError"
      },
      {
        "title": "decrypt - 解密函数",
        "body": "解密之前加密的字符串。\n\n# 解密（使用默认密钥）\ndecrypted = decrypt(encrypted_text)\n\n# 解密（使用自定义密码）\ndecrypted = decrypt(encrypted_text, \"my_password\")\n\n参数：\n\n参数类型说明encrypted_textstr要解密的 base64 编码字符串passwordstr可选，解密密码。必须与加密时使用的密码相同\n\n返回值：str - 解密后的原始字符串"
      },
      {
        "title": "批量操作",
        "body": "支持批量加密和解密操作。\n\nfrom pywayne.crypto import encrypt, decrypt\n\ndata = [\"数据1\", \"数据2\", \"数据3\"]\npassword = \"batch_password\"\n\n# 批量加密\nencrypted_list = encrypt_batch(data, password)\n\n# 批量解密\ndecrypted_list = decrypt_batch(encrypted_list, password)\n\n参数：\n\n函数参数说明encrypt_batch(data_list, password)data_list: 数据列表password: 密码decrypt_batch(encrypted_list, password)encrypted_list: 加密数据列表password: 密码\n\n返回值：list[str] - 解密结果列表（失败项目为 None）"
      },
      {
        "title": "配置文件管理",
        "body": "保存和加载加密配置文件（JSON 格式）。\n\nfrom pywayne.crypto import encrypt, decrypt\n\n# 保存配置\nconfig = {\"database\": {\"host\": \"localhost\", \"username\": \"admin\", \"password\": \"secret\"}}\nsave_config(config, \"master_password\", \"config.enc\")\n\n# 加载配置\nloaded_config = load_config(\"master_password\", \"config.enc\")\nprint(loaded_config)  # 输出: {'database': {...}}\n\n参数：\n\n函数参数说明save_config(config_dict, password, filename)config_dict: 配置字典password: 加密密码load_config(password, filename)password: 解密密码filename: 配置文件名\n\n异常：\n\nValueError：配置文件解密失败（密码错误或数据损坏）"
      },
      {
        "title": "加密策略",
        "body": "模块采用分层加密策略，优先使用 Fernet，回退到 XOR。\n\n| 策略 | 说明 |\n|------|------|------|\n| Fernet 加密（推荐） | AES-128 对称加密，带消息完整性验证 |\n| XOR 加密（回退） | 简单异或加密，无依赖，基本功能 |\n| 代码混淆保护 | Base64 编码隐藏、动态函数生成、命名空间清理 |"
      },
      {
        "title": "错误处理",
        "body": "完善的异常处理机制，支持密码错误、数据格式错误、解密失败等情况。\n\n# 密码错误\ntry:\n    decrypted = decrypt(encrypted_text, \"wrong_password\")\nexcept ValueError:\n    print(\"错误: 解密失败，密码不正确\")\n\n# 数据格式错误\ntry:\n    encrypted = encrypt(123)\nexcept ValueError:\n    print(\"错误: 输入类型必须是字符串或字节\")"
      },
      {
        "title": "最佳实践",
        "body": "密码妥善保管，避免硬编码在源码中\n高安全性要求的应用使用专业加密库\n密钥通过环境变量传递，避免写入日志"
      }
    ],
    "body": "Pywayne Crypto\n\n加密解密工具集，支持对称加密、自定义密码和代码混淆保护。\n\nQuick Start\nfrom pywayne.crypto import encrypt, decrypt\n\n# 基础加密/解密\nencrypted = encrypt(\"Hello World\")\ndecrypted = decrypt(encrypted)\nprint(decrypted)  # 输出: Hello World\n\n# 使用自定义密码加密\nencrypted = encrypt(\"Secret message\", \"my_password\")\ndecrypted = decrypt(encrypted, \"my_password\")\nprint(decrypted)  # 输出: Secret message\n\nencrypt - 加密函数\n\n加密字符串或字节数据。\n\n# 文本加密\nencrypted = encrypt(\"机密信息\", \"password\")\n# 字节加密\nbyte_data = b\"binary data\"\nencrypted = encrypt(byte_data, \"password\")\n\n\n参数：\n\n参数\t类型\t说明\ntext\tstr or bytes\t要加密的文本数据或字节数据\npassword\tstr\t可选，自定义密码。不提供时使用默认密钥\n\n返回值：str - base64 编码的加密字符串\n\n参数类型错误处理：\n\n当输入不是 str 或 bytes 时抛出 ValueError\ndecrypt - 解密函数\n\n解密之前加密的字符串。\n\n# 解密（使用默认密钥）\ndecrypted = decrypt(encrypted_text)\n\n# 解密（使用自定义密码）\ndecrypted = decrypt(encrypted_text, \"my_password\")\n\n\n参数：\n\n参数\t类型\t说明\nencrypted_text\tstr\t要解密的 base64 编码字符串\npassword\tstr\t可选，解密密码。必须与加密时使用的密码相同\n\n返回值：str - 解密后的原始字符串\n\n批量操作\n\n支持批量加密和解密操作。\n\nfrom pywayne.crypto import encrypt, decrypt\n\ndata = [\"数据1\", \"数据2\", \"数据3\"]\npassword = \"batch_password\"\n\n# 批量加密\nencrypted_list = encrypt_batch(data, password)\n\n# 批量解密\ndecrypted_list = decrypt_batch(encrypted_list, password)\n\n\n参数：\n\n函数\t参数\t说明\nencrypt_batch(data_list, password)\tdata_list: 数据列表\tpassword: 密码\ndecrypt_batch(encrypted_list, password)\tencrypted_list: 加密数据列表\tpassword: 密码\n\n返回值：list[str] - 解密结果列表（失败项目为 None）\n\n配置文件管理\n\n保存和加载加密配置文件（JSON 格式）。\n\nfrom pywayne.crypto import encrypt, decrypt\n\n# 保存配置\nconfig = {\"database\": {\"host\": \"localhost\", \"username\": \"admin\", \"password\": \"secret\"}}\nsave_config(config, \"master_password\", \"config.enc\")\n\n# 加载配置\nloaded_config = load_config(\"master_password\", \"config.enc\")\nprint(loaded_config)  # 输出: {'database': {...}}\n\n\n参数：\n\n函数\t参数\t说明\nsave_config(config_dict, password, filename)\tconfig_dict: 配置字典\tpassword: 加密密码\nload_config(password, filename)\tpassword: 解密密码\tfilename: 配置文件名\n\n异常：\n\nValueError：配置文件解密失败（密码错误或数据损坏）\n加密策略\n\n模块采用分层加密策略，优先使用 Fernet，回退到 XOR。\n\n| 策略 | 说明 | |------|------|------| | Fernet 加密（推荐） | AES-128 对称加密，带消息完整性验证 | | XOR 加密（回退） | 简单异或加密，无依赖，基本功能 | | 代码混淆保护 | Base64 编码隐藏、动态函数生成、命名空间清理 |\n\n错误处理\n\n完善的异常处理机制，支持密码错误、数据格式错误、解密失败等情况。\n\n# 密码错误\ntry:\n    decrypted = decrypt(encrypted_text, \"wrong_password\")\nexcept ValueError:\n    print(\"错误: 解密失败，密码不正确\")\n\n# 数据格式错误\ntry:\n    encrypted = encrypt(123)\nexcept ValueError:\n    print(\"错误: 输入类型必须是字符串或字节\")\n\n最佳实践\n密码妥善保管，避免硬编码在源码中\n高安全性要求的应用使用专业加密库\n密钥通过环境变量传递，避免写入日志"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/wangyendt/crypto-2",
    "publisherUrl": "https://clawhub.ai/wangyendt/crypto-2",
    "owner": "wangyendt",
    "version": "0.1.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/crypto-2",
    "downloadUrl": "https://openagent3.xyz/downloads/crypto-2",
    "agentUrl": "https://openagent3.xyz/skills/crypto-2/agent",
    "manifestUrl": "https://openagent3.xyz/skills/crypto-2/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/crypto-2/agent.md"
  }
}