This appears not to actually solve the hard problems of cryptography. It simply generates a random key, them XORs your message with it.
The key and the message are independently just random data and don't reveal anything about the content of the original message (except it's length).
It is a pretty rare case where we cannot transmit messages securely but we are confident that we can transmit two messages and not have them both intercepted.
If on the other hand you can securely transmit keys that are as big as your data, you could of course just transmit the data itself.
As such this is a starting point in understanding cryptography rather than a practical application.
You would be right -- if the use case for this was transmitting encrypted information. The reason I made this was mostly for email. Sometimes I want to send someone a message and not have it exist forever. In that case, you could send a link to the message along with the key. Then, after n hours, the message would cease to exist anywhere (assuming the server fulfills its contract). This works better than having the server just store the whole message, since now the server gets to be ignorant of the message's content. Mostly this was a fun little project I wanted to share :)
The key and the message are independently just random data and don't reveal anything about the content of the original message (except it's length).
It is a pretty rare case where we cannot transmit messages securely but we are confident that we can transmit two messages and not have them both intercepted.
If on the other hand you can securely transmit keys that are as big as your data, you could of course just transmit the data itself.
As such this is a starting point in understanding cryptography rather than a practical application.
I think, please tell me if I am missing something