I've been able find information on symmetric encryption and hashing but I've been having quite a bit of trouble finding much information on any sort of public key encryption for java. What I'd like to do is make a very simple proof of concept program that takes a string ( or a file I suppose), encrypts it with a public key and then decrypts it with a private key.
Any tutorial links or examples would be appreciated. I just want to make something demonstrating how you can use public key encryption in Java.
Normally, you use public key encryption to encrypt a symmetric key, in part because public key encryption is very slow. Typically, you'd send the recipient the following, so that they can decrypt your message:
I found the sample code in the JCE documentation sufficient to get things working.
The standard format for bundling all of this information up is the Cryptographic Message Syntax, or CMS, which is used by S/MIME in email applications. I recommend using Bouncy Castle's libraries; they are solid, fairly simple, and actively maintained. The reference documentation is a bit weak, but they do provide code examples.