Derive “Bitcoin address” from “Private Key”

Hello thank you
I am still confused.

Please indicate what should be done to derive “Bitcoin address” from “private key”.
Also i do not want to use Web wallets, as i was advised not store it online.
What should i do to pay someone to their “Bitcoin address” without using wallet.

To derive Bitcoin Address from a given private key:

First you calculate the public key of a given private key using elliptic curve multiplication.

Then, you take the public key and apply it through 2 hash functions, SHA256() and RIPEMD260(), and you’ll get A’:

A = RIPEMD260(SHA256((Public Key))

Then, calculate double-SHA checksum of A:

checksum = SHA256(SHA256(version prefix + A))

where ‘+’ denotes concatenation.

Then, append first 4-byte of the above checksum to A:

A = version prefix + A + checksum.

Lastly, turn 'A into Base58Check encoding (which allows these characters: ‘123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz’)

Bitcoin Address = Base58Check(A)

For details, please see:

Chapter 4. Keys, Addresses, Wallets
Mastering Bitcoin
by Andreas M. Antonopoulos
Published by O’Reilly Media, Inc., 2014

Could you make an example with expected outputs?
Where I should put these commands?
Do I need use Linux Virtual machine?

Consider using LibBitcoin Explorer (bx).

Use bx ec-to-public command to derive the EC (Elliptic Curve) public key of an EC private key. e.g.,

$ bx ec-to-public 8ed1d17dabce1fccbbe5e9bf008b318334e5bcc78eb9e7c1ea850b7eb0ddb9c8



Then, use bx ec-to-address command to convert an EC public key to a payment address.


$ bx ec-to-address 0247140d2811498679fe9a0467a75ac7aa581476c102d27377bc0232635af8ad36



bx, as mentioned, can be installed and run on Linux, Macintosh and Windows.

Please share with us if you have been using better tool/library.