note 93946 modified in book.openssl by joey
| From: | joey@php.net | Date: | Thu, 08 Oct 2009 01:30:47 +0000 |
| Subject: | note 93946 modified in book.openssl by joey | ||
| References: | 1 | Groups: | php.notes |
| Request: | Send a blank email to php-notes+get-161495@lists.php.net to get a copy of this message | ||
OpenSSL creates asynchronous key pairs, however I wanted to have the private key something that was
human-memorizable. With the standard keys generated, this is not possible. How I achieved it was to
use two types of encryption.
After generating a key pair with OpenSSL, the public key can be stored in plain text format. I then
encrypted the private key itself using regular mcrypt with the human-memorizable key of my choice
and converted it to ACSII using base64_encode. Then to get the private key back, I just decrypted it
with mcrypt. This way I could store the encrypted private key on the server without worrying about
having things stored unencrypted.
Of course, this will only be as good as your human-memorizable key is and can potentially reduce the
security of your script if you choose something simple or don't use salts.
--was--
OpenSSL creates asynchronous key pairs, however I wanted to have the private key something that was
human-memorizable. With the standard keys generated, this is not possible. How I achieved it was to
use two types of encryption.
After generating a key pair with OpenSSL, the public key can be stored in plain text format. I then
encrypted the private key itself using regular mcrypt with the human-memorizable key of my choice
and converted it to ACSII using urlencode(). Then to get the private key back, I just decrypted it
with mcrypt. This way I could store the encrypted private key on the server without worrying about
having things stored unencrypted.
Of course, this will only be as good as your human-memorizable key is and can potentially reduce the
security of your script if you choose something simple or don't use salts.
http://php.net/manual/en/book.openssl.php