Computer encryption uses cryptography to securely transmit sensitive information over the internet. There are two main types of encryption: symmetric key encryption where both computers share the same secret key, and public key encryption which addresses weaknesses of symmetric key by allowing users to communicate securely without pre-sharing a key. Popular implementations of public key encryption include Secure Sockets Layer (SSL) and Transport Layer Security (TLS) protocols used to transmit encrypted web traffic. Hashing algorithms also play a key role in public key encryption by generating unique hash values from data that cannot be reversed without the original input, improving security.