Text or hex XOR a repeating key, byte by byte with all the bits, and XOR again to get the data back.
Procedure
How it works
Exclusive or, written $\oplus$, gives 1 when two bits differ and 0 when they agree. On bytes it works on all 8 bits in parallel: $\mathtt{48} \oplus \mathtt{6B} = \mathtt{23}$, because 01001000 and 01101011 differ in three places. The key property is that XOR undoes itself: $(d \oplus k) \oplus k = d$, so the same operation encrypts and decrypts.
With a key as long as the message, truly random and never reused, XOR is the one-time pad (Vernam cipher), which is perfectly secure: every plaintext of the same length is equally likely. Stream ciphers such as ChaCha20 and AES in counter mode produce a long pseudo-random key stream and XOR it with the data.
A short key repeated over the data is a different story. It is a Vigenère cipher on bytes, broken by finding the key length (for instance with the Hamming distance between blocks) and then each key byte on its own by frequency analysis.
Everything is calculated in your browser. Nothing you type leaves your device.