mcpField
D
data-encryption

data-encryption

github.com/aj-geddesSecurity373613 installsUpdated 34w ago
Repository

About data-encryption

A security skill for protecting sensitive data at rest and in transit with cryptographic algorithms and key management practices. Its guides cover Node.js, Python, PostgreSQL, and TLS/SSL configuration.

Key features

  1. 01AES-256-GCM encryption guidance
  2. 02Asymmetric encryption guidance
  3. 03Key rotation and secure storage
  4. 04Password hashing and salting
  5. 05PostgreSQL and TLS/SSL guides

Use cases

  1. 01Encrypting stored sensitive data
  2. 02Protecting database and file contents
  3. 03Securing communications in transit
  4. 04Meeting encryption requirements

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/aj-geddes/useful-ai-prompts --skill data-encryption

After installing, type/data-encryptionin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

references/
database-encryption-postgresql.md
nodejs-encryption-library.md
python-cryptography-implementation.md
tlsssl-configuration.md
scripts/
security-checklist.sh

Details

From the project README

Data Encryption

Table of Contents

Overview

Implement robust encryption strategies for protecting sensitive data at rest and in transit using industry-standard cryptographic algorithms and key management practices.

When to Use

  • Sensitive data storage
  • Database encryption
  • File encryption
  • Communication security
  • Compliance requirements (GDPR, HIPAA, PCI-DSS)
  • Password storage
  • End-to-end encryption

Quick Start

Minimal working example:

// encryption-service.js
const crypto = require("crypto");
const fs = require("fs").promises;

class EncryptionService {
  constructor() {
    // AES-256-GCM for symmetric encryption
    this.algorithm = "aes-256-gcm";
    this.keyLength = 32; // 256 bits
    this.ivLength = 16; // 128 bits
    this.saltLength = 64;
    this.tagLength = 16;
  }

  /**
   * Generate a cryptographically secure random key
   */
  generateKey() {
    return crypto.randomBytes(this.keyLength);
  }

  /**
   * Derive a key from a password using PBKDF2
   */
  async deriveKey(password, salt = null) {
// ... (see reference guides for full implementation)

Reference Guides

Detailed implementations in the references/ directory:

GuideContents
Node.js Encryption LibraryNode.js Encryption Library
Python Cryptography ImplementationPython Cryptography Implementation
Database Encryption (PostgreSQL)Database Encryption (PostgreSQL)
TLS/SSL ConfigurationTLS/SSL Configuration

Best Practices

✅ DO
  • Use AES-256-GCM for symmetric encryption
  • Use RSA-4096 or ECC for asymmetric encryption
  • Implement proper key rotation
  • Use secure key storage (HSM, KMS)
  • Salt and hash passwords
  • Use TLS 1.2+ for transit encryption
  • Implement key derivation (PBKDF2, Argon2)
  • Use authenticated encryption
❌ DON'T
  • Roll your own crypto
  • Store keys in code
  • Use ECB mode
  • Use MD5 or SHA1
  • Reuse IVs/nonces
  • Use weak key lengths
  • Skip authentication tags

Comments

Markdown supported