Post
Topic
Board Bitcoin Technical Support
Re: A password Whiff
by
Mushai
on 26/08/2025, 08:32:34 UTC
Huh A few years ago, I made an armory account and tried to send an amount of bitcoin to it. When I made a password in armory that was easy to remember. I Know Exactly what the password was supposed to be. But, it came out differently than it was supposed to be because my keyboard only registered some of the keystrokes. I tried almost every variation missing two letters but I still can't access my account which I sent bitcoin to. Is there a program that exists to help me guess the missing letters?

ChatGTP can make you a html/javascript webpage that can do this. You can run it in your browser, offline if you wish.
I just tested it with the prompt: 
I want to create a webpage that uses javascript to take a word and produces all combinations of the word with up to 5 characters missing.

It produced this working code:

Code:
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Word Combinations</title>
  <style>
    body { font-family: Arial, sans-serif; margin: 2rem; }
    input, button { padding: 0.5rem; font-size: 1rem; }
    #results { margin-top: 1rem; white-space: pre-wrap; }
  </style>
</head>
<body>
  <h2>Word Combination Generator</h2>
  <input type="text" id="wordInput" placeholder="Enter a word">
  <button onclick="generate()">Generate</button>
  <div id="results"></div>

  <script>
    function generateCombinations(arr, k) {
      // helper to get index combinations
      const results = [];
      function helper(start, combo) {
        if (combo.length === k) {
          results.push([...combo]);
          return;
        }
        for (let i = start; i < arr.length; i++) {
          combo.push(arr[i]);
          helper(i + 1, combo);
          combo.pop();
        }
      }
      helper(0, []);
      return results;
    }

    function generate() {
      const word = document.getElementById("wordInput").value.trim();
      const maxRemovals = 5;
      if (!word) {
        document.getElementById("results").textContent = "Please enter a word.";
        return;
      }

      let combos = new Set();
      combos.add(word); // original word

      for (let r = 1; r <= Math.min(maxRemovals, word.length); r++) {
        const indexCombos = generateCombinations([...Array(word.length).keys()], r);
        for (const indexes of indexCombos) {
          let chars = word.split("");
          // remove indices (largest first so we don’t shift positions)
          for (const i of indexes.sort((a,b)=>b-a)) {
            chars.splice(i, 1);
          }
          combos.add(chars.join(""));
        }
      }

      document.getElementById("results").textContent =
        [...combos].filter(Boolean).join("\n");
    }
  </script>
</body>
</html>


Tested with the phrase: metal-band and hit generate and it produces a list of combinations starting with 1 character missing, then 2, then 3 etc. you can change the number of removals by editing the line: const maxRemovals = 5; and making it 6, 10 whatever.
sample output:
metal-band
etal-band
mtal-band
meal-band
metl-band
meta-band
metalband
metal-and
metal-bnd
metal-bad
metal-ban
tal-band
eal-band
etl-band
eta-band
etalband
etal-and
etal-bnd