
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:
<!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