#!/usr/bin/env python2.7 # -*- coding: utf-8 -*- ''' This is the python script file named " chanGenerator2.py " , which is copyleft freeware v 1.2 Usage: $ python2 chanGenerator.py dummy > mySaveFile place your chan passphrases in textfile chan-pp , then redirect output of this py-script to your text file e.g. "mykeys.dat" Generates a bitmessage stream 1 chan address on the command line. use > mykeys.txt output redirection to save the keys in the text file mykeys.txt and copy them into your keys.dat manually with the Kate editor from KDE. Do not use vim! It will break everything! https://web.archive.org/web/20171202221818/http://bitmessage.mybb.im/viewtopic.php?id=30%23p106 https://web.archive.org/http://bitmessage.mybb.im The chanGenerator generates a bitmessage stream 1 chan address on the bash-Konsole command line. does not need to be placed inside the pyBM subdirectory but works "stand alone". A bash alias to the script makes it useful for fast testing, or run this bash script: #!/bin/bash ## call this script named "shscr" as: ./shscr ./file1words ## with your chan names / passphrases contained inside of the file ./file1words ## however, SPACE chars , * asterisk and a few letters are not supported, also no " " double spaces possible, generate chan therefore in pyBM directly touch ./keys.dat--generated while IFS='' read -r line <&3 || [[ -n "$line" ]]; do echo \[chan\] $line; python2 ./chanGenerator2.py $line >> ./keys.dat--generated ; done 3<"$1" ________________________________________________________________________________________ [chan] 𝕓𝕚𝕥𝕞𝕖𝕤𝕤𝕒𝕘𝕖 BM-2cULYXn1VJAqoHjsQxME9UGRft3KHMYABh ________________________________________________________________________________________ Modeled after Bitmessage "VanityGen" by "nimda" and a later version called "bmgen.py" https://bitmessage.org/forum/index.php?topic=1727.0 https://gist.github.com/anonymous/43c7d9690e57558b10e59720b29dc2d6 https://web.archive.org/save/https://mx.forum.cool/viewforum.php?id=4 https://web.archive.org/save/http://bitmessage.mybb.im ''' import sys, os, base64, hashlib, time from struct import * from pyelliptic.openssl import OpenSSL import ctypes from pyelliptic import arithmetic from binascii import hexlify import compileall compileall.compile_dir(".", force=1) def encodeVarint(integer): if integer < 0: print 'varint cannot be < 0' raise SystemExit if integer < 253: return pack('>B',integer) if integer >= 253 and integer < 65536: return pack('>B',253) + pack('>H',integer) if integer >= 65536 and integer < 4294967296: return pack('>B',254) + pack('>I',integer) if integer >= 4294967296 and integer < 18446744073709551616: return pack('>B',255) + pack('>Q',integer) if integer >= 18446744073709551616: print 'varint cannot be >= 18446744073709551616' raise SystemExit def encodeAddress(version,stream,ripe): if version >= 2 and version < 4: if len(ripe) != 20: raise Exception("Programming error in encodeAddress: The length of a given ripe hash was not 20.") if ripe[:2] == '\x00\x00': ripe = ripe[2:] elif ripe[:1] == '\x00': ripe = ripe[1:] elif version == 4: if len(ripe) != 20: raise Exception("Programming error in encodeAddress: The length of a given ripe hash was not 20.") ripe = ripe.lstrip('\x00') verVar = encodeVarint(version) strVar = encodeVarint(stream) storedBinaryData = encodeVarint(version) + encodeVarint(stream) + ripe sha = hashlib.new('sha512') sha.update(storedBinaryData) currentHash = sha.digest() sha = hashlib.new('sha512') sha.update(currentHash) checksum = sha.digest()[0:4] asInt = int(hexlify(storedBinaryData) + hexlify(checksum),16) return 'BM-'+ encodeBase58(asInt) ALPHABET = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz" def encodeBase58(num, alphabet=ALPHABET): if (num == 0): return alphabet[0] arr = [] base = len(alphabet) while num: rem = num % base num = num // base arr.append(alphabet[rem]) arr.reverse() return ''.join(arr) def pointMult(secret): k = OpenSSL.EC_KEY_new_by_curve_name(OpenSSL.get_curve('secp256k1')) priv_key = OpenSSL.BN_bin2bn(secret, 32, 0) group = OpenSSL.EC_KEY_get0_group(k) pub_key = OpenSSL.EC_POINT_new(group) OpenSSL.EC_POINT_mul(group, pub_key, priv_key, None, None, None) OpenSSL.EC_KEY_set_private_key(k, priv_key) OpenSSL.EC_KEY_set_public_key(k, pub_key) size = OpenSSL.i2o_ECPublicKey(k, 0) mb = ctypes.create_string_buffer(size) OpenSSL.i2o_ECPublicKey(k, ctypes.byref(ctypes.pointer(mb))) OpenSSL.EC_POINT_free(pub_key) OpenSSL.BN_free(priv_key) OpenSSL.EC_KEY_free(k) return mb.raw found_one = False def chanerate(): global found_one #import argparse #parser = argparse.ArgumentParser(description='keep SPACE chars') #aargs = parser.parse_args() anz=len(sys.argv) aufwz=2 passphrase ="" #passphrase = sys.argv[1] # args[0] while aufwz < anz: #passphrase=passphrase+" "+sys.argv[aufwz] aufwz=aufwz+1 #print "---" #print " generate key for: " , passphrase myfile = open("chan-pp","r") lines = myfile.readlines() for line in lines: found_one = False #data = data + line.strip(); #with open('chan-pp', 'r') as myfile: #passphrase=myfile.readline().replace('\n', '') # read() while found_one != True: passphrase =line.replace('\n', '') #print passphrase + " -------- " deterministicNonce = 0 startTime = time.time() deterministicNall = str(passphrase) address="" while found_one != True: signingKeyNonce = 0 encryptionKeyNonce = 1 numberOfAddressesWeHadToMakeBeforeWeFoundOneWithTheCorrectRipePrefix = 0 deterministicPassphrase = deterministicNall while found_one != True: numberOfAddressesWeHadToMakeBeforeWeFoundOneWithTheCorrectRipePrefix += 1 potentialPrivSigningKey = hashlib.sha512(deterministicPassphrase + encodeVarint(signingKeyNonce)).digest()[:32] potentialPrivEncryptionKey = hashlib.sha512(deterministicPassphrase + encodeVarint(encryptionKeyNonce)).digest()[:32] potentialPubSigningKey = pointMult(potentialPrivSigningKey) potentialPubEncryptionKey = pointMult(potentialPrivEncryptionKey) signingKeyNonce += 2 encryptionKeyNonce += 2 ripe = hashlib.new('ripemd160') sha = hashlib.new('sha512') sha.update(potentialPubSigningKey+potentialPubEncryptionKey) ripe.update(sha.digest()) if ripe.digest()[:1] == '\x00': break address = encodeAddress(4,1,ripe.digest()) privSigningKey = '\x80' + potentialPrivSigningKey checksum = hashlib.sha256(hashlib.sha256( privSigningKey).digest()).digest()[0:4] privSigningKeyWIF = arithmetic.changebase( privSigningKey + checksum, 256, 58) privEncryptionKey = '\x80' + potentialPrivEncryptionKey checksum = hashlib.sha256(hashlib.sha256( privEncryptionKey).digest()).digest()[0:4] privEncryptionKeyWIF = arithmetic.changebase( privEncryptionKey + checksum, 256, 58) deterministicNonce += 1 if (address[:2] == "BM"): print " " # for >> keys.dat print "[" + address+ "]" print "label = [chan] " + str(deterministicPassphrase) print "enabled = true" print "decoy = false" print "chan = true" print "noncetrialsperbyte = 1000" print "payloadlengthextrabytes = 1000" print "privsigningkey = " + privSigningKeyWIF print "privencryptionkey = " + privEncryptionKeyWIF found_one = True break if (found_one == True): #pass break myfile.close() from optparse import OptionParser usage = "usage: %prog [options] dummy -- use dummy to generate keys -- use .... > mykeys.txt to save the keys in the text file mykeys.txt and copy them into your keys.dat manually " #passphrase" parser = OptionParser(usage=usage) parser.add_option("-i", "--info", action="store_true", dest="info", default=False, help="Show license and author info.") parser.add_option("-l", "--logo", action="store_true", dest="logo", default=False, help="Show logo and contact info.") (options, args) = parser.parse_args() if options.info: print """ --- """ print "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" print "" print "chan Generator" ### no double spaces possible :-( print "" print "put your chan passphrases in textfile chan-pp , then redirect output to your text file" print "" print "Generates a bitmessage stream 1 chan address on the command line." print "" print "" print "" print "" print "https://bitmessage.org/forum/index.php?topic=1727.0" print "https://gist.github.com/anonymous/43c7d9690e57558b10e59720b29dc2d6" print "" print "Usage: $ python2 chanGenerator.py " #"[passphrase]" print "use > mykeys.txt to save the keys in the text file mykeys.txt and copy them into your keys.dat manually " print "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" sys.exit() if options.logo: shield = """ big badass super mammoth keys.dat maker kicking butt like shit. biggest keys.dat ever. """ print shield sys.exit() if len(args) == 0: parser.print_help() sys.exit() chanerate() ''' contact / subscribe broadcast: (chanerator) < BM-NBTqJ12baBSKxqdnQedyhFVUWborkho3 > A bash alias to the script makes it useful for fast testing Adapted from Bitmessage VanityGen and a later version, bmgen.py content of file1words, 806 unique chans via cat ./wordlist | uniq -u >> unique-keys.dat a chan with 20 ' not displayed in python here , also * breaks ! # #MAGA #hashtag #opbundy #virus #wikileaks #íåâëèÿåìîå $ & (Created by BM-2cVPTkVZo2mDoJyXmaGkujtJNovVhu6W1H) (Created by BM-2cVZJonHbYBBZrPMwb9eMwdUwPVQb3GgV7) * + - . /aneki/ /b/ /bb/ /cp/ /lc/ /po/ /pol/ 0 0 0 0 0 0 1 123 1488 1532e76dbe9d43d0dea98c331ca5ae8a65c5e8e8b99d3e2a42ae989356f6242a 1776 1933 1984 1cad9ce04cda0fa318c415ba8b12adc4e10d8f327be4ff2b64f8ffdd44601582 1st amendment 2443399a5a1bd21819a1569af2215753ac5bcab9fb7c3331a5850ede95cbd054 2ch 2ch.hk/b/ 2ch.ru 2nd amendment 3dfdecdfaeba4cfe5a6bf4b454361a92274a835e825932934dd9939a0371e8bc 411 4Chan 8ch 911 :::::::::::::::::::: = === ==== ? ?password lost? @ ADL ALT-RIGHT AMERICHAN ANONYMOUS INTERNATIONAL AV女優 Adult Chat - Chat Adulto Agenda All_OS Android Animalsex Anonymous Netherlands AsianGirls Assange BAC BDC BIGBOOBS BTCXINDIA BTSync BUY AND SELL TECHNICAL PRODUCTS AND SERVICES CHAN Bagdad Bitcoin Meetups Bangalore Bitcoin Meetups Bangkok Bitcoin Meetups Battlenet_EU Battlenet_Int Battlenet_NA Battlenet_US Beamstat Beamstats Beijing Bitcoin Meetups Belarus chan Belta Berlin Bitcoin Meetups Bible BitBounty BitDateBoys2Girls BitDateGirls2Boys BitGigs BitGigs Chan BitText Bit_Message_JA Bitchan /JB/ BitcoinCrowdfundingincubator BitcoinDividendExperiment Bitmessage The Netherlands BitmessageSocialNetworks BlackJobNoCriminal Blizzard_gameschat Bloomberg BtmPoland Buenos Aires Bitcoin Meetups C# CGL CHAN CHWDP CIA CNN CRAP! Chan Chicago Ghetto Lottery Christian CivChan Coaching Coding CoinMarketXChange Computers Consoles CountrysideLunaticAsylumHorsecockTherapyMasturbationTherapyLobotomyDepartmentsIsolationWardIcedTeaSupplies1315 Crypto-Anarchist Federation Cryptocat DHS DOTU.RU Darknet Markets Debian Deutsch Devuan Diablo_1/2/3 Discordapp DogeCoin Elvis lebt Emacs Esperanto Euromaidan FBI FLAT-EARTH FLUORIDE FOX FREEDOM FRENCHAN Facebook Faygo Francophone FreeBSD FreenodeIRC Full Disclosure G3N3RAL GCHQ GENERIC Games Gaming GetMotivated Github Goat's penis GoldSilver Greeks HPVAC Haskell Hobbies HydBitcoin I2ES IBM IPFS IRC ISIS Imperial Reserve Bank JFK JPN_NEWS JQ Jakarta Bitcoin Meetups Johannesburg Bitcoin Meetups Jokes KGB KOB Karl Lentz: uncommon law LARP LGBT LSD Lagos Bitcoin Meetups Liberland-News LiberlandNews Lolita London Bitcoin Meetups Los Angeles Bitcoin Meetups MAGA MGTOW MI5 MI6 MLB MMM MSNBC MX.forum.cool Melbourne Bitcoin Meetups Metzdwood Cryptography Internal Chan Minichan Mojucoin Monero Montreal Bitcoin Meetups Moscow Bitcoin Meetups NASA NBA NFL NMC CoinJoin NOTV NPI NSA NWO Nairobi Bitcoin Meetups New Delhi Bitcoin Meetups New York Bitcoin Meetups News Nigerian Astronauts NoPedobear Nutcoin OOBE OS OTO OUTER HEAVEN OathKeepers Oldfags OpenBSD OpenScience PIVX POLICE PTHC Parallella Paris Bitcoin Meetups Philippines Pink Piracy PizzaGate PlanetMineCraft Poland Police Polska Primecoin Project Forge Bitmessage Chan ProjectBitcoinRealEstate PyBitmessage Qatar QuarkCoin Quarkcoin Quotes RKBA RT RU.Politics R[4/fep,lq= Random Acts of Pizza Reddit Retroshare Retroshare eXchange Rio De Janeiro Bitcoin Meetups RusMarket SEELE SEX SLAVYANSKIY-KRUG SNUFF SPLC SRA Saint Petersburg Bitcoin Meetups Salvage BitCoin San Escobar - official Sao Paulo Bitcoin Meetups SaveTheWhales Sex Chat Shanghai Bitcoin Meetups Sigaint SilkRoad Skeptics Skype Skype_Community Spain Spillcoin™ Steam Stockholm Bitcoin Meetups SubGenius Survival Sydney Bitcoin Meetups TEST Taohacker Channel Teheran Bitcoin Meetups Test The Dark Room I The Dollars The Red Pill The-Occult TheAntiMedia.org TheRightStuff.biz TheVenusProject The_Deep_State TimeService Tokyo Bitcoin Meetups Tolkien_Chan Trashbin TrueOS Twitch Twitch.com Türkçe UBF UK UKRAINE VeraIconaPublishers.com Vestichan WTF WWE WWII Waffen-SS division "Das Reich" Whispers Wizardchan World Cup 2014 Live Update Wrestling Yahoo ZeroNet Decentralised Websites Talk Zerocoin [chan] [the] {new} (SecStash) _ abu2ch account-sharing--everyone-benefits adult air force alex jones american freedom party american nationalism american nazi party americanism amerika.org amerikaner amish anarchism andrew anglin android anno006_Pastebin anti emacs anti-forensics anti-semitism antiamerican apple archlinux archlinux.ru ariosophy art aryan aryan nations asatru asdfasdfqwser austrianeconomics bandwagonjumpers barnes review beef belarus ben klassen beyondism bikers birds bitbrood3301 bitcoin-brasil bitcoin-italia bitmessage bitmessage.mybb.im bitmessageretards bitter clinger bittext.ch blacksketball bmfr boardgames bohemian grove bolshevik books boom bounty books bounty hunters bread and circuses british israel bro broadcast btc-e.com bubba lounge bunker c camel humper lounge canary card carolyn yeager kahant carolynyeager.net castro changrila chanmessage channel chicken chorizo christian christmas christmas music cjdnsru classical clowns code coding confederacy confessions coolhack corporatism correct horse battery staple cosmotheism council of conservative citizens cpp creativity movement crowd funded DDOS crypto cryptocat-rendezvous cuba cucks cultural marxism cyberguerilla cyberguerrilla darkwallet darth vader david duke de.test de995093c3873da70881ddf0bc1bb0f714ff361e653a1030d193497dbaba6355 deep_dataspace deepwebforum demonsaw developBM dewey tucker diaspora digital_dustbin dimensionalnomads dindus divan.crypto.autism diversity dixie dmt doctor_who dogecoin drunk dump durka-durka easter ebookget ebooks ecology edgar steele egg ehrenbunker empty_void_nothingness end.chan español ethereum euCae7if exhibitionism explosives fagmasonry fakeologist false flags family secrets fascism federalism fefe femanon find-new-chan flat-earth floss francis parker yockey frankfurt school fraud-in-academia free abortions freenet french fuck-all-government gallery of fine art gambling generic generule general gentoo germanyhusicaysx gilgul github.com/kristovatlas/entrances.github.com gnu gnuguixchan godlikeproductions golang golden dawn gopherspace government of the faggots, by the faggots, for the faggots goy goyim green is the worst color greencharter greg johnson guns hackers discussion hackthissite hail victory hailcave haji half-life hardcandy harold armstead covington hashes hate hatewatch heil herrenvolk hillary history hitlernomics hoaxacaust hobbits holocaust holocaust denial holyhoax homocaust homosexuals hot_rod hyperbit i2p iOS iceland immigration institute for historical review intel intelligence invisible empire ipfs iphone islam israel jazz jazzhands mcfeelz jenroll jew jewish supremacists jews jokes juick juicy juniper kek kenyan caliph kevin macdonald keyexchange keyring kiem# kiiem kilts kinism kkk koreaunderground kuk la raza label ladies_nsfw larp lounge larpmasons latex led zeppelin leekz legionarism lemonparty lent lesbian let's collect some rents! libertarian libertarians litecoin loli lolita lolks lor luftwaffe luke skywalker macacada rabuda magnet manjaro manosphere marxism mathaba mathematica mathim.com maths matlab matthew heimbach matthew raphael johnson mechanics memes memory-hard proof of work mesbit metapedia metapolitik mi5 militia mithraism monday night monkeyball mormon pizza mossad multicult murrica lounge music muslim child brides mystery babylon national socialism nationalism neboard neocons netsukuku new order news-pipe newswire ninjas anonymous noise northwest front npobepka null nullnet numberstation odinism olist omorashi onionshare openmw orgasms orwellian oswald spengler panzer papal pizza partisans paysty_development pcom pedobear pedogarchy penis phineas priesthood physics pibang pig pizza!pizza! pl.bitcoin pl.informatyka pl.linux pml po_polsku poems politics polly ticks pork porn postsecret potato potato niggers potus prescription lozenges for hookers presidential pizza preteengirls prettypecs priva-c profanity protestant pub public putaespaña queens racialism radix journal rageoutlet rape rapefugees reconquista reddit redice.tv reincarnation religion republicans reversing richard spencer rightpedia rightpedia.info ritual defamation roadkill romance ru-drugusers ru.2ch.hk/b/ ru.anekdot.israel ru.bitcoin ru.c-lang ru.crypto-anarchism ru.general ru.linux.anime ru.programming ru.python ru.security rudrugusers russia satanic ritual abuse satanism sciencefiction security sex shabbez goy shitposting shotacat shotachan silkroad slackware soviet union spamfilter squatemalans star trek star wars suicide superspam swastika swingers tatoeba tea party teenfem.nonude teengirls terrorism the daily stormer the occidental observer the occidental quarterly theodore herzel therightstuff.biz timecube toki pona torirc-rendezvous torrent invites tox trannygate travel troll trolleyville trump trumpizzaro turkey ubuntu ubuntu.ru usenet vagina velociraptors veraiconapublishers.com veronika kuzniar clark visualruby vk.com vroom vulcan warez wareztalk webehigh westboro baptist church whitakeronline white genocide white nationalism white rabbit white student union white.race wiki.parabola.nu/Bitmessage_channel_list wikileaks wikiwanks wisdom wotvote written-by-anon wtfpwnt wu-tang wykop xenophiles xvideos y2k yoda you guess this chan name ytcracker zerocoin zionist zionists zipperheads zips-and-binaries zoom | |magick-and-the-occult| ~ Èíôàìåòð ÊðèïòîÑâåò ÊðèïòîÑâåò - CryptoLight Ñëàâÿíñêèé êðóã ÒÓÒ ÂÑÅ ÍÀÑÐ¨Ì Óêðà¿íà Ôóòáîë_×Ì Õóé ëåñ õóåâ ñðà÷ õóåâ ëåñ الله أكبر ℂℍ𝔸ℕ𝕊 ℂℝ𝕐ℙ𝕋𝕆 ℂ𝕆𝕀ℕ ⒸⓇⓎⓅⓉⓄ ################################################ this kills "general" , "crypto" , "JESUS" etc. after uniq filter ! ⒼⒺⓃⒺⓇⒶⓁ ⓑⓘⓣⓜⓔⓢⓢⓐⓖⓔ ⓖⓔⓝⓔⓡⓐⓛ 中文频道 北京你懂得 𝔹ℝ𝕆𝔸𝔻ℂ𝔸𝕊𝕋 𝔹𝕀𝕋𝕄𝔼𝕊𝕊𝔸𝔾𝔼 𝕓𝕚𝕥𝕞𝕖𝕤𝕤𝕒𝕘𝕖 𝔾𝔼ℕ𝔼ℝ𝔸𝕃 𝕁𝔼𝕊𝕌𝕊 🂱 '''
chan generator ver. 1.2
Posts 1 to 10 of 10
Share13rd Dec 2017 10:47
Share23rd Dec 2017 10:49
updated to 1.2 working from file
Share34th Dec 2017 00:37
if numberOfAddresses == 0: raise APIError(4, 'Why would you ask me to generate 0 addresses for you?') if numberOfAddresses > 999: raise APIError(5, 'You have (accidentally?) specified too many addresses to make. Maximum 999. This check only exists to prevent mischief; if you really want to create more addresses than this, contact the Bitmessage developers and we can modify the check or you can do it yourself by searching the source code for this message.') queues.apiAddressGeneratorReturnQueue.queue.clear()
Share45th Dec 2017 08:00
The mammoth has ushered in the age of BitMessage freedom!
Share55th Dec 2017 11:06
gist.github.com/anonymous/925445ea97d7bc8622d0b706469adc42
800+ chans in one single KEYS.DAT
Share65th Dec 2017 11:15
saved on http for posterity :
web.archive.org/web/20171205111325/https://gist.github.com/anonymous/925445ea97d7bc8622d0b706469adc42
Share823rd Jul 2018 03:01
Our entry in web archive named "wayback machine" :
http://web.archive.org/web/20180723014533/https://mx.forum.cool/viewtopic.php?id=47#p135
http://web.archive.org/web/20180723014533/https://mx.forum.cool/viewtopic.php?id=47#p136
without nuisance page:
web.archive.org/web/20180723014533/https://mx.forum.cool/viewtopic.php?id=47%23p136
Last edited by fossil (23rd Jul 2018 03:16)
Share96th Sep 2022 18:03
hi all
Share1019th Nov 2023 02:37
Hello dear friend, I would like to offer placement of your link (or links) on different platforms of the internet such as: forums, blogs, comments and much more. . .
Increase your Visibility Boost Your Seo Rank - Get Organic Traffic From Google. Ranking in Google isn’t hard. All you need is a healthy number of backlinks from referring domains that have authority and trust in Google’s eyes.
This Backlinks Service Benefits:
1. Easily get Google rankings
2. Get a lot of traffic from Google
3. You can earn from the website in different ways
4. Increase Domain Authority (DA)
Quality guaranteed !
PRICE - 10$
WhatsApp: +1 (251) 840-379
Email: promotionyoursites@gmail.com