Пожалуйста, обратите внимание, что пользователь заблокирован
Подобные темы прямо перепись безработных
Просто поменять слова местами это не то что задумал автор картинки (я так думаю), он бы вообще бы тогда не нумеровал их в каком порядке они должны идти. Надпись возле первого слова - в ней и смысл по ходу, в первом слове
Мб кому повезетC#:using System; using System.Collections.Concurrent; using System.Collections.Generic; using System.IO; using System.Linq; using System.Threading; using System.Threading.Tasks; using NBitcoin; class Program { // Искомый адрес static readonly string targetAddress = "1nxg2UemSevaQ5cm12cb2TpLb2TXuSXtF"; // Глобальная переменная, сигнализирующая, что адрес найден static volatile bool found = false; // Объект для синхронизации записи результата static object foundLock = new object(); // Счётчик обработанных перестановок static long processedCount = 0; // Общее число перестановок для 12 слов: 12! = 479001600 static long totalPermutations = Factorial(12); // Период логирования static long logInterval = 1_000_000; static void Main() { // Ваши 12 слов var words = new string[] { "engage", "antenna", "option", "soft", "master", "grunt", "federal", "dwarf", "squeeze", "cupboard", "long", "rebuild" }; var permutationQueue = new BlockingCollection<string[]>(boundedCapacity: 10000); int consumerCount = 250; var validResults = new ConcurrentBag<(string Mnemonic, string Address)>(); var cts = new CancellationTokenSource(); CancellationToken token = cts.Token; // Продюсер Task producerTask = Task.Run(() => { foreach (var permutation in GetPermutations(words, words.Length)) { if (found) // Если уже нашли, прекращаем генерацию break; permutationQueue.Add(permutation, token); } permutationQueue.CompleteAdding(); }, token); // Потребители var consumerTasks = new List<Task>(); for (int i = 0; i < consumerCount; i++) { consumerTasks.Add(Task.Run(() => { while (!permutationQueue.IsCompleted && !found) { string[] perm; try { if (!permutationQueue.TryTake(out perm, TimeSpan.FromMilliseconds(100))) continue; } catch (OperationCanceledException) { break; } if (perm == null) continue; ProcessPermutation(perm, validResults); if (found) { // Если в процессе обработки найден адрес, завершаем работу break; } } }, token)); } // Ждём завершения продюсера Task.WaitAll(new[] { producerTask }, -1, token); // Ждём завершения всех потребителей Task.WaitAll(consumerTasks.ToArray(), -1, token); Console.WriteLine($"Поиск завершён. Найдено валидных мнемоник: {validResults.Count}"); if (found) { Console.WriteLine("Искомый адрес был найден! Данные записаны в found.txt"); } } static void ProcessPermutation(string[] permutation, ConcurrentBag<(string Mnemonic, string Address)> validResults) { if (found) return; string mnemonicStr = string.Join(" ", permutation); // Инкрементируем счётчик обработанных перестановок long currentCount = Interlocked.Increment(ref processedCount); // Периодический вывод статистики if (currentCount % logInterval == 0) { long remain = totalPermutations - currentCount; Console.WriteLine($"Обработано: {currentCount} перестановок, Осталось примерно: {remain}"); } try { var mnemo = new Mnemonic(mnemonicStr, Wordlist.English); if (!mnemo.IsValidChecksum) return; ExtKey extKey = mnemo.DeriveExtKey(); KeyPath path = new KeyPath("m/44'/0'/0'/0/0"); var key = extKey.Derive(path); var address = key.Neuter().PubKey.GetAddress(ScriptPubKeyType.Legacy, Network.Main); validResults.Add((mnemonicStr, address.ToString())); // Проверяем, тот ли это адрес if (address.ToString().Equals(targetAddress, StringComparison.OrdinalIgnoreCase)) { lock (foundLock) { if (!found) // Двойная проверка внутри lock { found = true; Console.WriteLine("Адрес найден!"); Console.WriteLine($"Мнемоника: {mnemonicStr}"); Console.WriteLine($"Адрес: {address}"); // Записываем в файл File.WriteAllText("found.txt", $"Mnemonic: {mnemonicStr}\r\nAddress: {address}"); } } } } catch { // Игнорируем ошибки } } static IEnumerable<T[]> GetPermutations<T>(T[] items, int count) { if (count == 1) return items.Select(t => new T[] { t }); return GetPermutations(items, count - 1) .SelectMany(t => items.Where(o => !t.Contains(o)), (t1, t2) => t1.Concat(new T[] { t2 }).ToArray()); } static long Factorial(int n) { long res = 1; for (int i = 2; i <= n; i++) res *= i; return res; } }
Я вот слово не могу это разобратьПросто поменять слова местами это не то что задумал автор картинки (я так думаю), он бы вообще бы тогда не нумеровал их в каком порядке они должны идти. Надпись возле первого слова - в ней и смысл по ходу, в первом слове
Монета на фото это типо как подкова на удачу
Фрам или Фран(?) или Знак бесконечностиЯ вот слово не могу это разобрать
www.bitcoinsafety.com
import bip32utils
import base58
import hashlib
from mnemonic import Mnemonic
import itertools
def get_bitcoin_address(seed_phrase):
mnemo = Mnemonic("english")
seed = mnemo.to_seed(seed_phrase, passphrase="")
bip32_root_key_obj = bip32utils.BIP32Key.fromEntropy(seed)
bip32_child_key_obj = bip32_root_key_obj.ChildKey(44 + bip32utils.BIP32_HARDEN).ChildKey(0 + bip32utils.BIP32_HARDEN).ChildKey(0 + bip32utils.BIP32_HARDEN).ChildKey(0).ChildKey(0)
private_key_wif = bip32_child_key_obj.WalletImportFormat()
public_key_hex = bip32_child_key_obj.PublicKey().hex()
# Create the Bitcoin address (P2PKH address)
public_key_bytes = bytes.fromhex(public_key_hex)
sha256_hash = hashlib.sha256(public_key_bytes).digest()
ripemd160_hash = hashlib.new('ripemd160', sha256_hash).digest()
versioned_payload = b'\x00' + ripemd160_hash
checksum = hashlib.sha256(hashlib.sha256(versioned_payload).digest()).digest()[:4]
final_payload = versioned_payload + checksum
bitcoin_address = base58.b58encode(final_payload).decode('utf-8')
return private_key_wif, bitcoin_address
words = ["engage", "antenna", "option", "soft", "master", "grunt","federal", "dwarf", "squeeze", "cupboard", "long", "rebuild"]
counter = 1
for perm in itertools.permutations(words):
counter += 1
seed_phrase = " ".join(perm)
private_key_wif, bitcoin_address = get_bitcoin_address(seed_phrase)
if bitcoin_address == "1nxg2UemSevaQ5cm12cb2TpLb2TXuSXtF":
print("Seed Phrase:", seed_phrase)
print("Private Key (WIF):", private_key_wif)
print("Bitcoin Address:", bitcoin_address)
break
print(counter)
Мб кому повезетC#:using System; using System.Collections.Concurrent; using System.Collections.Generic; using System.IO; using System.Linq; using System.Threading; using System.Threading.Tasks; using NBitcoin; class Program { // Искомый адрес static readonly string targetAddress = "1nxg2UemSevaQ5cm12cb2TpLb2TXuSXtF"; // Глобальная переменная, сигнализирующая, что адрес найден static volatile bool found = false; // Объект для синхронизации записи результата static object foundLock = new object(); // Счётчик обработанных перестановок static long processedCount = 0; // Общее число перестановок для 12 слов: 12! = 479001600 static long totalPermutations = Factorial(12); // Период логирования static long logInterval = 1_000_000; static void Main() { // Ваши 12 слов var words = new string[] { "engage", "antenna", "option", "soft", "master", "grunt", "federal", "dwarf", "squeeze", "cupboard", "long", "rebuild" }; var permutationQueue = new BlockingCollection<string[]>(boundedCapacity: 10000); int consumerCount = 250; var validResults = new ConcurrentBag<(string Mnemonic, string Address)>(); var cts = new CancellationTokenSource(); CancellationToken token = cts.Token; // Продюсер Task producerTask = Task.Run(() => { foreach (var permutation in GetPermutations(words, words.Length)) { if (found) // Если уже нашли, прекращаем генерацию break; permutationQueue.Add(permutation, token); } permutationQueue.CompleteAdding(); }, token); // Потребители var consumerTasks = new List<Task>(); for (int i = 0; i < consumerCount; i++) { consumerTasks.Add(Task.Run(() => { while (!permutationQueue.IsCompleted && !found) { string[] perm; try { if (!permutationQueue.TryTake(out perm, TimeSpan.FromMilliseconds(100))) continue; } catch (OperationCanceledException) { break; } if (perm == null) continue; ProcessPermutation(perm, validResults); if (found) { // Если в процессе обработки найден адрес, завершаем работу break; } } }, token)); } // Ждём завершения продюсера Task.WaitAll(new[] { producerTask }, -1, token); // Ждём завершения всех потребителей Task.WaitAll(consumerTasks.ToArray(), -1, token); Console.WriteLine($"Поиск завершён. Найдено валидных мнемоник: {validResults.Count}"); if (found) { Console.WriteLine("Искомый адрес был найден! Данные записаны в found.txt"); } } static void ProcessPermutation(string[] permutation, ConcurrentBag<(string Mnemonic, string Address)> validResults) { if (found) return; string mnemonicStr = string.Join(" ", permutation); // Инкрементируем счётчик обработанных перестановок long currentCount = Interlocked.Increment(ref processedCount); // Периодический вывод статистики if (currentCount % logInterval == 0) { long remain = totalPermutations - currentCount; Console.WriteLine($"Обработано: {currentCount} перестановок, Осталось примерно: {remain}"); } try { var mnemo = new Mnemonic(mnemonicStr, Wordlist.English); if (!mnemo.IsValidChecksum) return; ExtKey extKey = mnemo.DeriveExtKey(); KeyPath path = new KeyPath("m/44'/0'/0'/0/0"); var key = extKey.Derive(path); var address = key.Neuter().PubKey.GetAddress(ScriptPubKeyType.Legacy, Network.Main); validResults.Add((mnemonicStr, address.ToString())); // Проверяем, тот ли это адрес if (address.ToString().Equals(targetAddress, StringComparison.OrdinalIgnoreCase)) { lock (foundLock) { if (!found) // Двойная проверка внутри lock { found = true; Console.WriteLine("Адрес найден!"); Console.WriteLine($"Мнемоника: {mnemonicStr}"); Console.WriteLine($"Адрес: {address}"); // Записываем в файл File.WriteAllText("found.txt", $"Mnemonic: {mnemonicStr}\r\nAddress: {address}"); } } } } catch { // Игнорируем ошибки } } static IEnumerable<T[]> GetPermutations<T>(T[] items, int count) { if (count == 1) return items.Select(t => new T[] { t }); return GetPermutations(items, count - 1) .SelectMany(t => items.Where(o => !t.Contains(o)), (t1, t2) => t1.Concat(new T[] { t2 }).ToArray()); } static long Factorial(int n) { long res = 1; for (int i = 2; i <= n; i++) res *= i; return res; } }
Там другая логика. Мы сейчас пытаемся понять фейк крипта или нетПосмотреть вложение 99611
Перебрал все до конца. Этого адреса не нашел
Бро, представь, что у тебя есть биткоин-адрес с 26 миллионами долларов. Я потрачу 500 тысяч, чтобы обезопасить его. Это чушь. Если они хотят раздать деньги, то для этого есть благотворительность.Посмотреть вложение 99611
Перебрал все до конца. Этого адреса не нашел
Это фейк как говорятБро, представь, что у тебя есть биткоин-адрес с 26 миллионами долларов. Я потрачу 500 тысяч, чтобы обезопасить его. Это чушь. Если они хотят раздать деньги, то для этого есть благотворительность.
Та-то понятно. Зато все будут знать, что, если всё перебрать, то ничего не будетБро, представь, что у тебя есть биткоин-адрес с 26 миллионами долларов. Я потрачу 500 тысяч, чтобы обезопасить его. Это чушь. Если они хотят раздать деньги, то для этого есть благотворительность.
не неси х#йниФраза по которой зашел)
Проверь сам)не неси х#йни
ты бы проверил для начала, а потом сам х#йню всякую несине неси х#йни
куда зашел? на целевой кошелек?ты бы проверил для начала, а потом сам х#йню всякую неси