Instacracker-cli Info

def analyze_password(self, password: str) -> Dict: """Analyze password strength and provide feedback""" score = 0 feedback = [] # Length check if len(password) >= 12: score += 2 elif len(password) >= 8: score += 1 else: feedback.append("Password is too short (minimum 8 characters)") # Complexity checks if re.search(r'[A-Z]', password): score += 1 else: feedback.append("Add uppercase letters") if re.search(r'[a-z]', password): score += 1 else: feedback.append("Add lowercase letters") if re.search(r'\d', password): score += 1 else: feedback.append("Add numbers") if re.search(r'[!@#$%^&*(),.?":{}|<>]', password): score += 1 else: feedback.append("Add special characters") # Check against common passwords if password.lower() in self.common_passwords: score -= 2 feedback.append("Password is too common") # Entropy calculation (simplified) charset_size = 0 if re.search(r'[a-z]', password): charset_size += 26 if re.search(r'[A-Z]', password): charset_size += 26 if re.search(r'\d', password): charset_size += 10 if re.search(r'[!@#$%^&*(),.?":{}|<>]', password): charset_size += 32 entropy = len(password) * (charset_size.bit_length() - 1) if charset_size > 0 else 0 # Strength rating if score >= 5: strength = "Very Strong" elif score >= 4: strength = "Strong" elif score >= 3: strength = "Moderate" elif score >= 2: strength = "Weak" else: strength = "Very Weak" return { "score": score, "strength": strength, "entropy_bits": entropy, "feedback": feedback, "length": len(password), "has_upper": bool(re.search(r'[A-Z]', password)), "has_lower": bool(re.search(r'[a-z]', password)), "has_digits": bool(re.search(r'\d', password)), "has_special": bool(re.search(r'[!@#$%^&*(),.?":{}|<>]', password)) } def main(): parser = argparse.ArgumentParser( description='InstaCracker CLI - Password Security Testing Tool', formatter_class=argparse.RawDescriptionHelpFormatter, epilog=""" Examples: %(prog)s hash --target 5f4dcc3b5aa765d61d8327deb882cf99 --type md5 %(prog)s analyze --password "MySecurePass123!" %(prog)s brute --hash 5f4dcc3b5aa765d61d8327deb882cf99 --max-length 5 %(prog)s generate --words admin,password,test --output wordlist.txt """ )

def _check_hash(self, word: str, target_hash: str, hash_type: str) -> bool: """Check if word matches target hash""" hash_func = getattr(hashlib, hash_type, None) if not hash_func: raise ValueError(f"Unsupported hash type: hash_type") computed = hash_func(word.encode()).hexdigest() return computed == target_hash instacracker-cli

args = parser.parse_args()

def hybrid_attack(self, target_hash: str, hash_type: str = "md5", base_words: List[str] = None) -> Tuple[Optional[str], int]: """Hybrid attack combining dictionary with mutations""" base_words = base_words or self.common_passwords mutations = [ lambda x: x + "123", lambda x: x + "1234", lambda x: x + "!", lambda x: x.capitalize(), lambda x: x.upper(), lambda x: x + "2023", lambda x: x + "@", ] self.attempts = 0 self.start_time = time.time() print(f"[*] Starting hybrid attack...") for word in base_words: # Check original self.attempts += 1 if self._check_hash(word, target_hash, hash_type): elapsed = time.time() - self.start_time return word, self.attempts, elapsed # Check mutations for mutation in mutations: mutated = mutation(word) self.attempts += 1 if self._check_hash(mutated, target_hash, hash_type): elapsed = time.time() - self.start_time return mutated, self.attempts, elapsed elapsed = time.time() - self.start_time return None, self.attempts, elapsed password: str) -&gt

cracker = InstaCrackerCLI(verbose=True) while True: print("\n" + "="*50) print("Commands: [1] Crack Hash [2] Analyze [3] Generate [4] Exit") choice = input("\nSelect option: ").strip() if choice == '1': target = input("Enter hash: ").strip() hash_type = input("Hash type (md5/sha1/sha256): ").strip() or 'md5' print("\nMethods: [1] Dictionary [2] Brute Force [3] Hybrid") method_choice = input("Select method: ").strip() if method_choice == '1': wordlist_file = input("Wordlist file (optional): ").strip() wordlist = None if wordlist_file: try: with open(wordlist_file, 'r') as f: wordlist = [line.strip() for line in f] except: print("[-] Could not load wordlist") result, attempts, elapsed = cracker.dictionary_attack(target, hash_type, wordlist) elif method_choice == '2': max_len = int(input("Max password length (default 5): ").strip() or '5') result, attempts, elapsed = cracker.brute_force_attack(target, hash_type, max_len) else: result, attempts, elapsed = cracker.hybrid_attack(target, hash_type) if result: print(f"\n[+] SUCCESS! Password: result") else: print(f"\n[-] Failed to crack hash after attempts:, attempts") print(f" Time: elapsed:.2f seconds") elif choice == '2': password = input("Enter password to analyze: ").strip() analysis = cracker.analyze_password(password) print(f"\n[+] Strength: analysis['strength']") print(f" Score: analysis['score']/6") if analysis['feedback']: print(" Suggestions:") for sug in analysis['feedback']: print(f" - sug") elif choice == '3': base = input("Base words (comma-separated): ").strip() output = input("Output file: ").strip() count = cracker.generate_wordlist(base.split(','), output) elif choice == '4': print("[+] Goodbye!") break if == " main ": print(""" ╔══════════════════════════════════════════════════╗ ║ InstaCracker CLI - Security Tool v1.0 ║ ║ Authorized Use Only! ║ ╚══════════════════════════════════════════════════╝ """) main() password): charset_size += 26 if re.search(r'[A-Z]'

def brute_force_attack(self, target_hash: str, hash_type: str = "md5", max_length: int = 6, charset: str = None) -> Tuple[Optional[str], int]: """Perform brute force attack""" charset = charset or string.ascii_lowercase + string.digits self.attempts = 0 self.start_time = time.time() print(f"[*] Starting brute force attack (max length: max_length)...") for length in range(1, max_length + 1): for combo in itertools.product(charset, repeat=length): word = ''.join(combo) self.attempts += 1 if self._check_hash(word, target_hash, hash_type): elapsed = time.time() - self.start_time return word, self.attempts, elapsed # Progress indicator if self.verbose and self.attempts % 10000 == 0: print(f"[*] Attempts: self.attempts, Current: word") elapsed = time.time() - self.start_time return None, self.attempts, elapsed

def _load_common_passwords(self) -> List[str]: """Load common passwords from built-in list""" return [ "password", "123456", "123456789", "qwerty", "abc123", "admin", "letmein", "welcome", "monkey", "dragon", "master", "sunshine", "iloveyou", "football", "baseball" ]

instacracker-cli
Sign-up for newsletters & special offers!

Get the latest stories & special offers delivered directly to your inbox

SUBSCRIBE

Uh-oh! It looks like you're using an ad blocker.

Our website relies on ads to provide free content and sustain our operations. By turning off your ad blocker, you help support us and ensure we can continue offering valuable content without any cost to you.

We truly appreciate your understanding and support. Thank you for considering disabling your ad blocker for this website