Public and Private Keys - How to generate all Steem user's keys from master password, without a Steemit website, being OFFLINE
security·@noisy·
0.000 HBDPublic and Private Keys - How to generate all Steem user's keys from master password, without a Steemit website, being OFFLINE
I had a break in writing technical articles, because I need some time to organize two Steem Meetups (in [Wrocław](https://steemit.com/steemit/@noisy/the-first-polish-steem-meetup-took-place-20-steemians-met-in-one-place-or-pl-odbyl-sie-pierwszy-polski-steem-meetup-20-steemian) and [in Warsaw](https://steemit.com/polish/@noisy/we-would-like-to-invite-you-to-join-first-steem-warsaw-meetup-or-pl-zapraszamy-wszystkich-na-pierwszy-warszawski-steem-meetup)), and to [give a talk about Steem in Łódź](https://steemit.com/steem/@noisy/today-i-am-going-to-talk-about-steemit-on-blockchain-lodz-meetup-in-poland). But finally I am back on track regarding my _Steem Security_ series, so today I am able to publish 3rd articles from this series. If you didn't read my earlier articles about different aspects of security of your steem account, you can find list of those articles on the bottom of this article.  # Real password and keys: demo So, last time we learnt about why private keys are needed. This time we will learn how they are generated. You already have seen [in my 1st post in a series](https://steemit.com/security/@noisy/what-is-the-difference-between-a-password-and-a-private-key-s-on-steemit-how-to-make-your-account-more-secure-by-using-them) a demo gif/video, where I showed how to login to an account with a private key instead of a password. During this demo I also showed, that at the time of recording I used password <sub><sup>`P5KB2ir4BaDTeeBe5SUW16F6NYGeYSVaUBn261kDPLGGCSiNahtm`</sup></sub> to log in on my `noisy3`demo account. https://steemitimages.com/0x0/https://steemitimages.com/DQmXk2iWwD272ETE9mesTnk5Hb1qMkUdZjUxRa7j9ZjHwPK/2017-06-11-17-59-28.gif Now I want to show you, that you actually **don't have to type your master password on Steemit website**, to generate all your keys. You can generate them being totally offline! # How to locally generate all Steem users keys from master password With some help of python code and [steem library](http://steem.readthedocs.io/en/latest/), we can write something like this: from steembase.account import PasswordKey account = 'noisy3' password = 'P5KB2ir4BaDTeeBe5SUW16F6NYGeYSVaUBn261kDPLGGCSiNahtm' key_types = [ 'posting', 'active', 'owner', 'memo', 'foo_bar' ] for key_type in key_types: private_key = PasswordKey(account, password, key_type).get_private_key() public_key = private_key.pubkey print('Private ' + key_type + ' key: ' + str(private_key)) print('Public ' + key_type + ' key: ' + str(public_key) + '\n') <br> This gives us: Private posting key: 5JLMze1sUVPhUBwTVjZyQhFMGfbN5KB7nqHfKjXuN5GUTYTbYFy Public posting key: STM6GkXgEKTYc7gNv1GWJ5ZseyESHQnN7nr3rxdo5sBjzWQcdMyKy Private active key: 5JFfMWjWMjnhu6vJKB2uUwUaLCws9JotHzLB8wkVEZjsZnSzDTv Public active key: STM5uLTFYpPK4XVLMe16uuQFdW1Vo2MzN9UPqHQKjePwB76NnS9qk Private owner key: 5JKjBjfRVZaf8H5w8XgiB6HfEH2SFJXUJL3QA6mteg5uQ3qRW9M Public owner key: STM7iZnny8bvNRd6v6nx25XG6ijAKZs1ANvtuqTN2gjSYWXHC8Jgy Private memo key: 5JvpThC3DwjHkupj6jnT5pnFW21Bsj3g4GhxhLLtM2WNsV2ynPw Public memo key: STM5uEy2yYnoqVY9ksfkMbbY3UH4qFygARn2SW7PFJ4cRErHbH7Vh Private foo_bar key: 5KJQP53B4MPHCWBQ8Xm9ydhKmjqrouRuf8UWWEZjHtkgmrtNCc5 Public foo_bar key: STM7hNqe6DJmXsqaDG8poaDVAvQx59EgWWQUbVLRUfi2Ab7mCvsnJ So as you can see, **private posting key** is exactly the same like in my demo gif/video above: .png) From technical point of view, from your password can be generated even new type of keys, like _Private `foo_bar` key_ and _Public `foo_bar` key_ :) ---------------- This article belongs to series of articles which describes security on Steemit: 1. [What is the difference between a password and a private key(s) on Steemit? How to make your account more secure, by using them correctly.](https://steemit.com/security/@noisy/what-is-the-difference-between-a-password-and-a-private-key-s-on-steemit-how-to-make-your-account-more-secure-by-using-them) 2. [Public and Private Keys - how they are used by Steem, making all of these possible?](https://steemit.com/security/@noisy/public-and-private-keys-how-they-are-used-by-steem-making-all-of-these-possible-you-can-find-answer-here) 3. [How to generate all Steem user's keys from master password, without a Steemit website, being OFFLINE](https://steemit.com/security/@noisy/public-and-private-keys-how-to-generate-all-steem-user-s-keys-from-master-password-without-a-steemit-website-being-offline) (this article) 4. [How to set own password, which is not generated by Steemit](https://steemit.com/security/@noisy/how-to-set-an-own-password-which-is-not-generated-by-steemit) 5. How passwords are stored by Steemit in your browser, and why it is secure. 6. How to setup multisig/multiple authorities for your account 7. ... Make sure to follow my account, if you don't want to miss any of these :) <sub><sup>PS. [This article was live-st(r)eemed](https://www.twitch.tv/noisypl).</sup></sub>
👍 corvuscoraxx, fabien, ajvest, warofcraft, ivet, hammaraxx, jimbobbill, assert-true, jakipatryk, acidyo, roelandp, marconah, inertia, pharesim, andr1an0, oroger, steppingout23, rubnawaz, mohamadshwa5, bodyinbeta, sshh, leongkhan, jademont, fsdev, slava7450745, rezacoin, tad-auker, arfa, veerprit, awesomenyl, titoortiz, oneshot, bien, tomekkk, praz735u5, adriansky, wbulot, newarguy, kingscrown, memepatrol, princesspriya, samanthabonin, ihashfury, arumi, bearpaw, solarsherpa, yacov, awesome-seven, sandra, kenny-crane, makrotheblack, sevinwilson, gamesjoyce, eviljedi, valency1, ancapwarren, shirlam, theprophet0, lenka, meesterboom, appledeguzman, poeticsnake, ramiashqar, jacekw, germanaure, ahmadredha, uangdatang, moromaro, neo84, luisneira, spidersprog, nkr, tuongvile, raili, gtg, architrader, generikat, steempower, platanotree, whd, tenghamn, melstandard, trafalgar, sportsgeek, bleujay, breadcentric, rival, sharadkotadia, asmaasema, syn999, ni7n3k, razon, chiefurag, jcgoez, proaeropl, sneakgeekz, rerycore, razaqbarry, emag, killuminatic, rangertx, doughnutsmuggler, xgrosz, peter2017, adamak2k, justinkim, diamondfx, idunno, evolved08gsr, delsol, malekalmsaddi, danielzorila, amvanaken, peradabandunia, mod-tamichh, ramseyman, cardboard, dez1337, wasifsheikh, banjo, katteasis, afrikanprince, tellall, sqube, nickwalshblog, hilongs, samuelsunday, applecrisp, openspace, harferri, ir3k, imperfect-one, falcao12, isteemit, fyrstikken, thecryptofiend, cryptoninja, masterwriter, gustoo, alcik, dailylol, devrajlove, josuedsb, dmcdominic, ryan313, mys, guiltyparties, searnold, chaospoet, ausbitbank, akhyarhuroxx, themarkymark, arjoona, prowebwriter, dan, dber, snoe860, michian, srizan, zuski, jacksonoskele, pijushmitra, stellabelle, timcliff, teodorescu, celsius100, tuck-fheman, mellissaying, jesusdmc98, offgrind, dimyat, buildawhale, madscientistx13, cleateles, nataliia, uwais334, camb, paxmagnus, jerge, cwbrooch, kunrishartanto, michaelx, sesises, munzil, robgood, m3rcos1ty, fooblic, vato, danyelk, perduta, mattuk, fervi, anonymous97, lukmarcus, knowledge-trust, lionelmessi, mozesdickson, audra1776, justinschwalm, daniel007, johannsra, aditor, cyan91, whileoutsanch, writer1, runridefly, dynobryno, jga, senor, wahidbudip, theregularguy, destbest, rebeccabe, mavicorp, duekie, akaimyers, coquiunlimited, hashclouds, allmonitors, ejemai, simontycy, flotk57, geoffrey, sem89, bitcoinparadise, dillibabu, truadmin, qed, supersnooper221, k0dlaty, rav3n, calsaisuma, maskoza, sipildanarsitek, hass, lexxydust, cristi, shashankgupta, davidad, kashish.azad, clodoweg, inversio, majidawan, dunsky, angusleung100, raphavongal, tskeene, camelx, dimitrisp, amirak, devilcat, tsinrong, fiber.god, tadej, timsaid, zahidhasan1065, marianascarpa, dmelcer9, vishalmukadam, evgenya86, cryptoron, slickhustler007, repholder, edb1984, beatcoinpl, lordoftruth, quantumdamage, radzioha, scotstudies, besteulz, letc, elgeko, barcisz, itsmee.bosslady, izwafauzi, seneca666, evieseeks, jaca, noisy, igormuba, kamalx, kwahzee, nazmulshahadat, farhannaqvi7, felisco, mgrobelkiewicz, bamidele, abu.amann, medras, todderic, bmgreece, amecool, alicehot, cryptonull, cyberprince, pan-komentarz, fumimachiko, preventions, herbacianymag, homesteadprepper, jblew, john371911, stoney.kang, putrabone, alex-steem-it, korben, intangir,