Новый метод поиска BTC кошельков

Крипто Форум 2 дней назад 15
Preview
Всем привет Давно читаю форум и как-то наткнулся на статьи про генерацию Bitcoin-адресов Честно говоря, сначала относился к этому скептически. Все знают, что в интернете куча программ, которые обещают “находить забытые кошельки”. Но когда начинаешь смотреть, оказывается, что половина — пустышки, другая половина — это переделанные бесплатные скрипты с GitHub В итоге я решил: раз уж тема зацепила, нужно попробовать самому. Где-то почитал на форумах, где-то подсказал искусственный интеллект, где-то сам дошёл до решения. Так шаг за шагом у меня получилось собрать полноценное приложение, которое может генерировать, проверять и сохранять результаты Начало работы В основе всего лежит 256-битное число. Из него получается приватный ключ, а уже из приватного — публичный, на основе которого формируется адрес. Я сделал так, чтобы этот массив можно было разбивать на блоки и задавать разные режимы: часть битов можно зафиксировать, часть оставить для свободной генерации, а ещё можно подключить сдвиг, когда после каждой генерации последовательность двигается на 1 бит вправо или влево. Благодаря этому не приходится просто бить по всем комбинациям подряд, а можно задавать направления и исследовать конкретные области Режимы генерации Блокированная генерация — когда все биты фиксированы, а меняются только выбранные позиции. Свободная генерация — полный разгон по всем 256 битам. Со сдвигом — каждая итерация идёт чуть дальше, вправо или влево, и так получается целая серия похожих ключей. Эти функции кажутся простыми, но именно в таких мелочах и кроется удобство: можно подстраивать работу под конкретные задачи Танцы с бубном и база данных Самое сложное оказалось не генерация, а проверка. Хотелось найти уже готовую базу с адресами, но пересмотрев кучу ресурсов, я понял, что нормального варианта просто нет. Везде или обрезанные куски, или мусор. Пришлось идти тяжёлым путём — парсить блокчейн самому. Скажу честно: это были настоящие танцы с бубном. Сначала думал: “Ну что там, просто выгрузка, и готово”. А оказалось, что это тонны данных, которые нужно правильно обработать, структурировать и привести к удобному виду. В конечном итоге я собрал огромный файл с адресами, который весил десятки гигабайт. Но и это было неудобно — ведь проверять по простому txt-файлу на сотни миллионов строк очень тяжело для системы. Поэтому пришлось сделать нормальную базу данных. На выходе получилась база под 50 ГБ, которая позволяет проверять адреса моментально Какие адреса мы используем Я сделал акцент именно на адресах формата Base58, то есть тех, что начинаются на 1 или 3. Это самые классические P2PKH и P2SH-адреса, и именно с ними работает приложение. Соответственно, и генерация в программе построена так, чтобы получать такие адреса. А проверка идёт уже по базе: если сгенерированный адрес совпадает с тем, что когда-то участвовал в транзакции — результат сохраняется Результаты и работа с базами В итоге получилось три основных базы: Референсная — адреса, которые когда-то участвовали в транзакциях. Генеративная — то, что создаёт программа в процессе. Проверочная — место, где фиксируются совпадения. Такой подход оказался удобным: можно разделять всё по задачам и не путать данные. Что получилось Сейчас у меня есть приложение, которое умеет: генерировать фразы и адреса, работать с разными режимами (фикс, свободный, со сдвигом), проверять совпадения по огромной базе, сохранять результаты в удобном виде. Да, я не строю иллюзий насчёт того, что можно перебрать весь диапазон 256 битов. Но с правильным подходом и использованием таких методов шансы найти что-то реально существующее всё же возрастают По результатам вот список адресов address wif 1EMxdcJsfN5jwtZRVRvztDns1LgquGUTwi KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFU7QHept7Wc 18FtYoEJipP5bCJnjgWdeeEbxSvozSjEUA KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFU7Bqcefezr 1LxerPZSoPQAH4iJFHJQPpbiCCsZzYpzQD KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFU7RnL768KG 1iT5k9C6PQiBLjbLVHFx42xuhCX5kngh3 KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFUPzsB81SFn 18xiXDdYhapNJoAp4UAkJa1WZT9U9FmQiD KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFU79r7UuP1H 1H2GoFDiFjmWitZMF46oGU1d6HtxHpaBQw KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFU7ji4XTJwW 1ErRgaKE6L7f7Lgj4R7pLiRCRgyDMAXDok KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rQ4pNTHoduaD 14qhMvWT1Fd7NFRgSgbEgHkm22pXmUi3X3 KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFU7XksFWAot 1GkFyhEBkkwUT9keTB8qMp2t4NQi8YcVGf KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFYxNt37uBuj 1QCbW9HWnwQWiQqVo5exhAnmfqKRrCRsvW KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFY5iMZbuRxj 12e2Zo4VFe2j4Cs3gru55H8JZ7PZXppHnd KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFU7GKcwKfzu 1AvFWBLBiyZcAF9CQMhSFchwSQwk9NaJVc KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFUt7DrypzUB 13KKVwFYVP1NJN7SDBYoPdbiD9L7GkbaM3 KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rVzCujeK4sLs 1ErZWg5cFCe4Vw5BzgfzB74VNLaXEiEkhk KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFVfZyiN5iEG 15DDiZeTq7qA91H6gMtdwWex4zavvJ84WV KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFUBVKiaQhQ8 1PgQVLmst3Z314JrQn5TNiys8Hc38TcXJu KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFUGxXgtm63M 128z5d7nN7PkCuX5qoA4Ys6pmxUYnEy86k KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7wBBz2KJQdASx 13zdFFdFn1LxfcXF8B6VBsnKxiLkZ7zBUU KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFU7GpUzYZru 1BDyrQ6WoF8VN3g9SAS1iKZcPzFfnDVieY KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFbjHrFMWzJp 19ZewH8Kk1PDbSNdJ97FP4EiCjTRaZMZQA KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFU76rnZwVdz 1cMh228HTCiwS8ZsaakH8A8wze1JR5ZsP KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFU74NMTptX4 12KBvbxMCiMF6eMFW1fm2DkBtazFVQ7poY KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7ros1UbvzN1xg 18aDk6Q4VRgACwVubTKgAcR1vvULSWHz5q KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rUTse79VEJJE 1Bhn8sogARSVN51NrYTx9rNYTUUajx5fdd KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rGtK5ThYnqQS 1KZS2JH5cjfJA94EN4LZDEUDRBEYteziEn KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFV57cwEChj6 1CfZWK1QTQE3eS9qn61dQjV89KDjZzfNcv KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rP9Ja2dhtxoh 1Dzcvys1EuHPS2EbF6MysBpfh6DCAZ86G KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFWXi8NcLaKB 1H5goGUoHD8YgeKUumXprKPCBv7z8i88c3 KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFa1jsqK6iBf 1McVt1vMtCC7yn5b9wgX1833yCcLXzueeC KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFU7hDgvu64y 18tKAwF2rffoBvLL3BsHhXBZgjTwtrrSo9 KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rfbgbm4oGsoY 1qt1XZruqRF8UWoHLt2dAEc9XoSXnpQwT KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFUGwXt3dVzN 1JxTdWJ2Ba5ctnPHRY5x9TkR3Zw7A6YFVi KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFU8M4kCEXzm 1Jc3u6y1fbHtFCrW2bfp3irVMKjvdf18LM KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFUdYfX7vnMm 1De6AKwwDZmrPx3HKDjh8F6XYSRBGQQWRx KwDiBf89QgGbjEhKnhXJuH7LrciVraFfLDhS2jSRHFJr87urYi8f 1138gbpCaTXHe96Ty5cCbVX5uFeBy2Vu7H KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFUG7EQDf1cs 1DF7Yr4GKWoCXZZZXoEczo9oiokwQe8Urz KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFU9EMfkHW6w 1PitScNLyp2HCygzadCh7FveTnfmpPbfp8 KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFU7Tmu6qHxS 1NWmZRpHH4XSPwsW6dsS3nrNWfL1yrJj4w KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rGP2jMrxCfX3 12QrXWX8fmRExSHs5qTVpwkFpzH7W8DHYM KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFU8swUHkKN3 1HFip8s7qwi3AVrhska7pdBmv2HuMi1N9D KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFVPoCu1KuCP 1LdVaKvGiKXc6FhDKvGPafzfFRVCjGL9cZ KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rwoHUab4kp23 18osJvoujsv3FsxVha7yMHvFiDWquFXbSw KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFUiD4boGJim 1BekKz9AzybX4zpFTg361Y3s6ARKiQM8js KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFVQV3VnN5DY 16wJm7xNQkGKLzNbQBtTkD7BdAbHpncT1e KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFUFSPUU8i2U 1AXSyzMK4Ft3HTmgmUQP62UBFwwCqyWwjg KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFU7ZFZTAFwN 1FpAuiR6brbyDAMcJaHhDiEnfBPPa5Gobw KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFUKQx46gVL9 1CAE6ej7VyAhgTtL1AYKTEByRJaCZKg8XM KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFU897WefMPU 14qadWQ4VufiE2BUFGpWEM3CJRYyayExA9 KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFZjVicJkT5H 16YN8zEFfZwW8oaD6wJupvbBxLVyZ8vnae KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFkvBuCYQ96m 1AtXuyrxuu95o8XePZM92bzzKuLJnk8jhn KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFUCm2CX6hcC 1E6NuFjCi27W5zoXg8TRdcSRq84zJeBW3k KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFU7Dq8Au4Pv 1BDA326gh1dQmzaG5b4oqfSwAhvi3cHT51 KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rKfgJSCaCqnR 1JqriDFxus8fDX6BJFcABAiVspc8Lu9wu6 KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFY4ECxD2mfG 1Dkpf4A24toznB3wYbxiRBfxYp6YZ3NgKo KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rG8tREpftKd6 1DN76uuAUDY1DLxABD3JAyunhhAreJbCjT KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFUJXAFvSAwM 1Erdkas1vkW2NrxJr4DeFQMXrFCGpJiBLZ KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFdhvFw4FNah 1PqmKxNYQ4EBpfLcMy34EFCMAY58othX7u KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFUBkm2uKZHu 1FgA9KyWZqpCsHJ7Lxv4ZUNDZF7nR5f5yE KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFZAWWi3hNn9 1GnNTmTVLZiqQfLbAdp9DVdicEnB5GoERE KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFyWkjT5fywW 1MYLoi1m1PMj57NsLQaEVhmFm7SMf2DVZV L4XUU7fzNT236dY1YKtcjD23gFakQHDkj6586L15GxKZaxCfaoEd 1NH3rfkepLEWNzqf9B4gWjuRthNGtftVXg KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFU8Ka3R2eE9 1EzjkMU8iGQThYVHdMSZGHwJNNH7DCg59v KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFU887oBzXkL 17fXkkBqueu7Vv3byBoxHvkNPy9xJTQF2P KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFVZ22VbMKos 18JHgcWCoD1gbj6wpbDH5Us3HKaJozj6nt KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFU7EpsjnCKc 1877dPhvZX5TmvK3d85gGGLUxP3ma6CDwt KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFUM73siX7Ui 1M92tSqNmQLYw33fuBvjmeadirh1ysMBxK KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFU8xvGK1zpm 1K1ULhkFmCGGtffrZn5Dj1FqMmnStRLmMh KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFbWLQoVdPdc 141fTonryMQxmkKcba9FstmyQv3tqdBzTY KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFU86d9GNkvq 1NDaJQKUp9TaKXgLLnM4d5ukP1WcmhDPhV KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFUQdDebXwag 1ANECug5gF8XRLL4q4ghcdeAimASxzjULC KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFXoRCyjGHPf 1MDyhnmkzMR9sTxdwjiD54yFRzVCfG7wMw KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFV568NtYhUF 1JtkuYJMG2MGycQiAczUT1HQu4hka3q47q KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFU7sBJ3MwmH 1Ba2fu7AAuz9FRNLJtGqxQayPJFNK8wQ7L KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rqfhdxxqn7PT 1DBXWtQvTYmtfeaKmmmW4YtTHqWysJenLz KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFYXyeYJwpd5 1CUNEBjYrCn2y1SdiUMohaKUi4wpP326Lb KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFU74sHUHy8S 1Pie8JkxBT6MGPz9Nvi3fsPkr2D8q3GBc1 KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFUspniiQZds 1HsMJxNiV7TLxmoF6uJNkydxPFDog4NQum KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rHfuE2Tg4nJW 1DBaumZxUkM4qMQRt2LVWyFJq5kDtSZQot KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFUW5RtS2JN1 12sR6SKoVv4wF75pAp2srPH73t9uXchgei KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFU7Sn5EEi3x 173M3yw1P1SfiPiDHABLGi5LLBAMohVQ7h KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFU88ceDCAJZ 1BgXK1VnkLPGyTyfqCtvDpC8WVf9LsK5us KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFU8H5eKFBxB 1FTLcF9rvSVAT3M2pe6E9JqFNbJrKoM66L KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rX3a8XPVkk6c 1CNGVCCs97EKpFqYjiCGeDszdqfozeaKJS KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFU8ZWmCLHwi 1Pj8FBymNAtyMprznxfUibHPBDioLweMcP KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rJK2caXMD6WG 1EprTqZoAbPd3vAJkkN22jo4LFUrd83chK KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFUnqU7vvRfY 1GRAUw6p288DL6nD1Wy9isvVJkEemjBPf4 KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rRLYzgkYQpxW 1FUG2NWd3CoDo6U4bYDeNDjmXWYPD3SMCL KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFUA8eKNEqrf 1CQFwcjw1dwhtkVWBttNLDtqL7ivBonGPV KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFUB3vfDKcxZ 1LeBZP5QCwwgXRtmVUvTVrraqPUokyLHqe KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFUBTL67V6dE 14oFNXucftsHiUMY8uctg6N487riuyXs4h KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rL6JJvw6XUry 1LutqRAJkLqS9J81SfrPySJNnBT2cBdvEt KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFU7rgTPAZNh 1BTeQw63egu3r8ju2n85T1Uf6ifssWJxzk KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFUMMzJXdRKc 1Enxbw61Ei7rRo5dBusJcjc5vb1KSnUbvd KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFW8NeDsqxws 1EopTkDNwwfCp639gkUGcUwSkE6EgPeNrx KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFUQRGUAYH8i 198uCQkfZs5iQisoeKFnYVxDeVs9uYyxsr KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFZGxVMsWdXy 1EhqbyUMvvs7BfL8goY6qcPbD6YKfPqb7e KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFU77MfhviY5 1KJyNjeZbGmH93D2yP36ViV8smdtAWv1E6 KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFU7Pnq298pn 1Q9b913HztGrAUXV9sxMfzfq5HryJaYuSK KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rxnyLJ9VFtqr 1JtK9CQw1syfWj1WtFMWomrYdV3W2tWBF9 KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFU75NBY2dKG 1NzpgnC9YtGDQbSU1gwAYJrrJT7xUmAbD4 KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFU7djYnZbY1 1HSxWThjiwbC4dJbXHMpBfwRenB12UguG5 KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFU77rcWepLD 15wPJhwthAkBtUgx3qFEyCtnK7piuu6Xvr KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFU78rNKwdiH 1rSnXMr63jdCuegJFuidJqWxUPV7AtUf7 KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rtHyNcFoApRd 15ZBLL7iGGDxRZnW9tfjg57Qd6sbW7PpT6 KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFVKNkYAKtmi 1HduPEXZRdG26SUT5Yk83mLkPyjnZuJ7Bm KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFiHkRsp99uC 1L2GM8eE7mJWLdo3HZS6su1832NX2txaac KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rVkthFNsQ6i7 1121eM7X9yVJfXGPmn9DmJfJEjSSWtXaWL KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFUDomw4D6mC 1C6x9PqHbYg5AdhqTSKSZBv9jPZqoL5fB8 KwvYhT4JRXREG2ifZnprcuG6TEGzqeiJKuYfTr8ng5WQFYB8xYsJ 1DTb6UhxVnLxDcs2V7u1wX6zAxEx66uzQZ KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFXBgemMSGLM 12UGwi5mvuA95s34fyw2ANzmt1Bk8L1Ljt KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFU8RYik3wmw 1BgGZ9tcN4rm9KBzDn7KprQz87SZ26SAMH KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFU73sVHnoWn Заключение Для меня это стало интересным проектом: от первых попыток и экспериментов до полноценного приложения с базами и проверкой. Пусть это не волшебная палочка, но инструмент получился рабочий, гибкий и удобный. Если кого-то заинтересует программа — пишите в личку, всё обсудим. Сттая написана не без помощи гпт ибо мне лень все это красиво оформлять, Всем спасибо за внимание и надеюсь что данный пост подходит под все правила модерации
Читать продолжение в источнике: Крипто Форум
Failed to connect to MySQL: Unknown database 'unlimitsecen'