用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/javimosch/open-claw-skills --skill hash-toolkit命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
Connect your AI assistant to GoHighLevel CRM via the official API v2. Manage contacts, conversations, calendars, pipelines, invoices, payments, workflows, and 30+ endpoint groups through natural language. Includes interactive setup wizard and 100+ pre-built, safe API commands. Python 3.6+ stdlib only — zero external dependencies.
Manage Cloudflare DNS records, Tunnels (cloudflared), and Zero Trust policies. Use for pointing domains, exposing local services via tunnels, and updating ingress rules.
Mema's personal brain - SQLite metadata index for documents and Redis short-term context buffer. Use for organizing workspace knowledge paths and managing ephemeral session state.
基于 SOC 职业分类
正在显示 SKILL.md
| id | hash-toolkit |
| version | 1.0.0 |
| name | Hash Toolkit |
| description | Content hashing for deduplication with MD5, SHA256, and perceptual hashing |
| author | NeoClaw Team |
| category | utility |
| tags | ["hashing","deduplication","md5","sha256"] |
| dependencies | [] |
Multi-algorithm hashing for content deduplication and verification.
const crypto = require('crypto');
/**
* Generate hash using specified algorithm
* @param {string|Buffer} content - Content to hash
* @param {string} algorithm - Hash algorithm
* @returns {string} Hash string
*/
function generateHash(content, algorithm = 'sha256') {
const hash = crypto.createHash(algorithm);
hash.update(Buffer.isBuffer(content) ? content : String(content));
return hash.digest('hex');
}
/**
* Generate multiple hashes at once
*/
function generateMultipleHashes(content) {
return {
md5: generateHash(content, 'md5'),
sha1: generateHash(content, 'sha1'),
sha256: generateHash(content, 'sha256'),
sha512: generateHash(content, 'sha512').substring(0, 32) // Truncated
};
}
/**
* Generate perceptual hash (for images/content similarity)
* Simplified implementation
*/
function generatePerceptualHash(content) {
// Simplified perceptual hash
// In production: use actual perceptual hashing algorithm
const normalized = String(content).toLowerCase().replace(/\s+/g, ' ');
return generateHash(normalized, 'sha256').substring(0, 16);
}
/**
* Check if content is duplicate based on hash
*/
function checkDuplicate(contentHash, knownHashes) {
return {
isDuplicate: knownHashes.has(contentHash),
hash: contentHash,
algorithm: 'sha256'
};
}
/**
* Calculate similarity between two hashes
* (for perceptual hashes)
*/
function calculateHashSimilarity(hash1, hash2) {
if (hash1.length !== hash2.length) return 0;
let matches = 0;
for (let i = 0; i < hash1.length; i++) {
if (hash1[i] === hash2[i]) matches++;
}
return matches / hash1.length;
}
// Export for OpenClaw
module.exports = {
generateHash,
generateMultipleHashes,
generatePerceptualHash,
checkDuplicate,
calculateHashSimilarity
};
// Generate SHA256 hash
const hash = skills.hashToolkit.generateHash(content, 'sha256');
// Generate multiple hashes
const hashes = skills.hashToolkit.generateMultipleHashes(content);
console.log(hashes.md5, hashes.sha256);
// Check for duplicates
const knownHashes = new Set(['abc123...']);
const result = skills.hashToolkit.checkDuplicate(hash, knownHashes);
if (result.isDuplicate) {
console.log('Duplicate content detected');
}
// Perceptual hash for similarity
const phash = skills.hashToolkit.generatePerceptualHash(imageData);
{
"defaultAlgorithm": "sha256",
"enablePerceptual": true
}