bitcoind and bitcoin-cli and bitcoin-qt
Bitcoin Core is the name of the software you are referring to, and it is the software that runs Bitcoin. Computers that run Bitcoin Core are usually called nodes on the Bitcoin network. It is open source, and there are hundreds of developers around the world that have and are contributing to it over the last 10+ years.

The software can be run by anyone, and so the wallet that is included with the software must be secured by you. Online exchanges may or may not use Bitcoin Core, but likely have their own wallet implementation. You do not need to run your own node to transact in bitcoin, the wallet software will submit transactions to a node, however.

To create and view a private key for an address in bitcoin core, use:

$ bitcoin-cli getnewaddress
&lt;your new address&gt;

$ bitcoin-cli dumpprivkey &lt;your new address&gt;
&lt;your private key in WIF format&gt;


Encrypting your wallet just makes it so if someone opens your Bitcoin node, they must have your password in order to be able to spend your bitcoin. It is highly recommended to do so. This password is unrelated to the private keys for your bitcoin addresses. The 12 word mnemonics you are referring to is not implemented in Bitcoin Core, and not generally recommended.

Docs for the RPC commands can be found here: https://bitcoincore.org/en/doc/0.18.0/