!hashid <hash>
Examples:
• !hashid 5f4dcc3b5aa765d61d8327deb882cf99
• !hashid 5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8
• !hashid $6$rounds=5000$salt$hash...
• !hashid $y$j9T$... (yescrypt from /etc/shadow)
Supported Hash Types:
• Modern: yescrypt, scrypt, Argon2, bcrypt
• Unix Crypt: SHA-512 Crypt, SHA-256 Crypt, MD5 Crypt
• Raw Hashes: MD5, SHA-1/224/256/384/512, SHA-3, NTLM, LM
• Database: MySQL, PostgreSQL, Oracle, MSSQL
• CMS: Wordpress, phpBB3, Drupal, Django
• LDAP: SSHA, SMD5, and various LDAP formats
• Network: NetNTLMv1/v2, Kerberos
• Exotic: Whirlpool, RIPEMD, BLAKE2, Keccak, GOST
"""
await bot.api.send_markdown_message(room.room_id, usage_msg)
return
hash_input = ' '.join(args)
try:
# Identify the hash
identified = identify_hash(hash_input)
if not identified:
await bot.api.send_text_message(
room.room_id,
"Could not identify hash type. Please verify the hash format."
)
return
# Sort by confidence (highest first)
identified = sorted(identified, key=lambda x: x[3], reverse=True)
# Format the response
hash_preview = hash_input[:60] + "..." if len(hash_input) > 60 else hash_input
# Determine confidence indicator
top_confidence = identified[0][3]
if top_confidence >= 90:
confidence_emoji = "🟢"
confidence_label = "Very High"
elif top_confidence >= 80:
confidence_emoji = "🟡"
confidence_label = "High"
elif top_confidence >= 60:
confidence_emoji = "🟠"
confidence_label = "Medium"
else:
confidence_emoji = "🔴"
confidence_label = "Low"
# Build response inside collapsible details
response = "{hash_preview}-m {hashcat_mode}")
if john_format:
tools.append(f"John: --format={john_format}")
if tools:
response += f" {' | '.join(tools)}!hashid <hash> – Recognises 100+ hash formats (MD5, SHA, bcrypt, etc.).
Shows confidence level, Hashcat mode, and John the Ripper format.