mcpField
C
cs-crypto

cs-crypto

github.com/alphaonedev安全49 次安装
代码仓库

关于 cs-crypto

cs-crypto 是一项面向代码和命令行加密实践的技能,涵盖加密、哈希、密钥管理、证书、TLS、签名、零知识证明及抗量子算法。

主要功能

  1. 01对称与非对称加密
  2. 02SHA-256 和 Blake3 哈希
  3. 03X.509 证书与 TLS
  4. 04数字签名与验证
  5. 05基础零知识证明
  6. 06抗量子算法

适用场景

  1. 01加密存储数据或 API 载荷
  2. 02检查数据完整性与真实性
  3. 03配置安全连接的 TLS
  4. 04探索隐私保护证明

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/alphaonedev/openclaw-graph --skill cs-crypto

安装后在 Claude Code 中输入/cs-crypto确认已加载。

详细介绍

cs-crypto

用途

此技能使 AI 能够实现和使用加密技术来保障数据安全,包括加密、哈希、密钥管理以及 TLS 等协议,确保在代码或命令行环境中安全运行。

适用场景

  • 保护数据传输或存储安全,例如加密文件或消息。
  • 验证数据完整性或真实性,例如对用户输入进行哈希处理或为交易签名。
  • 处理安全通信,例如为 API 配置 TLS。
  • 实现高级安全功能,例如用于保护隐私计算的零知识证明(ZKP),或用于面向未来的抗量子算法。

主要能力

  • 对称加密:支持 CBC 或 GCM 模式下的 AES-128/256,可快速、安全地加密数据。
  • 非对称加密:使用 RSA(最高 4096 位)或 ECC(例如 secp256k1)进行密钥交换和签名。
  • 哈希:使用 SHA-256 生成标准摘要,或使用 Blake3 进行高速哈希并生成 256 位输出。
  • PKI:生成和管理 X.509 证书,包括 CSR 的创建和验证。
  • TLS:配置 TLS 1.3 握手以保护套接字安全,包括选择密码套件。
  • 数字签名:使用 RSA 或 ECC(例如 ECDSA)创建和验证签名。
  • ZKP:实现 zk-SNARK 等基础功能,在不泄露数据的情况下提供证明。
  • 抗量子:使用 CRYSTALS-Kyber 等算法进行密钥封装,或使用 Dilithium 进行签名。

使用模式

始终使用安全的随机密钥初始化加密操作,并处理无效输入导致的异常。对于 AES 加密,先生成密钥,然后通过一次函数调用完成加密或解密。如果可用,请使用硬件安全模块(HSM)存储密钥。哈希处理模式:输入数据 -> 哈希对象 -> 更新并完成计算。对于 TLS,使用 SSL 上下文包装套接字。Python 示例模式:

from cryptography.hazmat.primitives.ciphers import Cipher, algorithms, modes
key = b'32-byte-key-for-aes-256'  # Use secure key generation
iv = os.urandom(16)
cipher = Cipher(algorithms.AES(key), modes.CBC(iv))
encryptor = cipher.encryptor()
encrypted = encryptor.update(b"plaintext") + encryptor.finalize()

对于命令行,将输入通过管道传递给带有特定标志的 OpenSSL 命令。

常用命令/API

  • 使用 OpenSSL 进行 AES 加密:openssl enc -aes-256-cbc -pbkdf2 -iter 10000 -in input.file -out output.enc -k $ENCRYPT_KEY(使用 -salt 增强安全性)。
  • 生成 RSA 密钥:openssl genpkey -algorithm RSA -out private.pem -pkeyopt rsa_keygen_bits:2048,然后使用 openssl rsa -in private.pem -pubout -out public.pem 导出公钥。
  • 使用 SHA-256 进行哈希:echo -n "data_to_hash" | openssl dgst -sha256 -binary | base64,或在 Python 中使用:import hashlib; hash_obj = hashlib.sha256(b"data").digest()。
  • 创建 X.509 证书:openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365 -subj "/CN=example.com"。
  • 在代码中配置 TLS:使用 Python 的 ssl 模块:import ssl; context = ssl.create_default_context(); context.load_cert_chain(certfile="cert.pem", keyfile="key.pem")。
  • 数字签名:使用 openssl dgst -sha256 -sign private.pem -out signature.bin input.file 签名,并使用 openssl dgst -sha256 -verify public.pem -signature signature.bin input.file 验证。
  • ZKP 示例:使用 libzkp 库;在代码中:from libzkp import prove; proof = prove(statement, witness)。
  • 抗量子操作:使用 OpenQuantumSafe 生成 Kyber 密钥:oqsprov genpkey -algorithm Kyber512 -out key.pem。

集成说明

首先安装所需的库,例如 pip install cryptography openssl,或使用系统 OpenSSL。对于云 KMS 等经过身份验证的服务,请设置环境变量:export AWS_KMS_KEY=$SERVICE_API_KEY,并在代码中引用,例如 os.environ.get('AWS_KMS_KEY')。通过安全保管库管理密钥;切勿记录密钥。要集成多个工具,可将 OpenSSL 封装在脚本中:导入 subprocess 并运行 subprocess.run(['openssl', 'enc', ...])。确保与 Python 或 Go 等语言兼容;对于 Go,请使用 crypto/aes 包。

错误处理

始终将加密调用放在 try-except 块中,以捕获特定异常。例如,在 Python 中:from cryptography.exceptions import InvalidSignature; try: verifier.verify(signature, data) except InvalidSignature: raise ValueError("Signature invalid")。对于命令行工具,请检查退出代码:如果 openssl 命令失败,请解析 stderr 中的错误信息,例如 "bad decrypt",并使用正确的密钥重试。常见问题包括:密钥无效(使用 openssl errstr 查看错误代码)、哈希不匹配(重新计算并比较)或 TLS 握手失败(使用 -debug 标志进行调试)。记录错误及上下文,例如密钥长度或模式错误;必要时回退到其他算法。

具体使用示例

  1. 使用 AES-256-GCM 加密敏感字符串并将其解密: 在 Python 中:

    from cryptography.hazmat.primitives.ciphers.aead import AESGCM
    key = b'32-byte-long-secret-key-here'
    aesgcm = AESGCM(key)
    nonce = os.urandom(12)
    encrypted = aesgcm.encrypt(nonce, b"confidential data", None)
    decrypted = aesgcm.decrypt(nonce, encrypted, None)  # Output: b"confidential data"
    

    可将其用于保护 API 负载;将 nonce 与加密数据一同存储。

  2. 生成 RSA 密钥对、为消息签名并验证签名: 通过命令行:首先,生成密钥:openssl genrsa -out private.pem 2048。签名:openssl dgst -sha256 -sign private.pem -out sig.bin message.txt。验证:openssl dgst -sha256 -verify public.pem -signature sig.bin message.txt(成功时会输出 "Verified OK")。 在代码中(Python):

    from cryptography.hazmat.primitives.asymmetric import rsa, padding
    from cryptography.hazmat.primitives import hashes
    private_key = rsa.generate_private_key(public_exponent=65537, key_size=2048)
    signature = private_key.sign(b"message", padding.PSS(mgf=padding.MGF1(hashes.SHA256()), salt_length=padding.PSS.MAX_LENGTH), hashes.SHA256())
    public_key = private_key.public_key()
    public_key.verify(signature, b"message", padding.PSS(...), hashes.SHA256())  # No error if valid
    

    可将其用于验证交易或文档的真实性。

图谱关系

  • 相关集群:computer-science
  • 链接至:network-security(共享 TLS 和 PKI 功能)
  • 关联:data-privacy(通过加密和哈希功能)
  • 重叠领域:blockchain-tech(通过数字签名和 ZKP)
  • 集成:quantum-computing(用于抗量子算法)

评论

支持 Markdown