Alt-PHP-Faq

Vitamin Supplements| Cortavet| Cortaflex| Cortaflex| Health Supplements| Equine Supplements| Manuka Honey| Fat Loss 4 Idiots| Explosive Cashins CB Traffic Warrior Freedom Blogging Profit The Profit Spy Push Button Monkey GPunisher Blogging Syndicate Content Lockdown Turbo Commissions Auto Cash Funnel Traffic Reloaded Affiliate Scalper Mass Money Makers


Question :

How can I use PGP with PHP?

Answer :
We would recomend using GnUPG not PGP, GnUPG can be used for comercial sites without a license.

You will need shell access, i.e. telnet or SSH. SSH is more secure. Also a linux machine and a copy of PGP installed on your machine. You will also need to generate a key pair, this consists of a public and private key. The public key is uploaded to the server the private key is kept on your machine. See the PGP help file for more information.

GnUPG must be installed, (Check with your server admin)

Access the shell as your user then do the following command :-
mkdir .gnupg
chmod 777 .gnupg
gpg --gen-key

use a dummy name and when it gets to the bit where it generates the keys make sure the machine is doing I/O to get the entropy.. ie. telnet in again and do a du / or something its best to have this ready and just hit enter as you finish the key creation

This creates a dummy key pair, this is not used but is needed.

This takes anything from a few seconds to a few minutes depending on the speed of the server.

as the user, just ftp the ascii public key to the server. This will be called something.asc. Upload it making sure its ASCII not binary (See your FTP software help file)

then type ..

gpg --import file.asc

Then ..

gpg --list-keys

get the name of the new key that was uploaded, this will be something like :-
pub 1024D/FA46F142 2000-11-03 Darren Casey

The next part is to set the permissions for the .gnupg directory so the webserver can access the files. Type the following commands :-

cd .gnupg
chmod 666 trustdb.gpg
chmod 604 secring.gpg
chmod 604 random_seed
chmod 644 pubring.gpg
cd ..

Example code is as follows :-

<?
//Set the username to the user on the server
$username "dummy";

$pgp="/usr/local/bin/gpg";

// User that is sending the e-mail (In the from address etc..)
$user="Darren Casey <updates@alt-php-faq.org>";

//This is the key that was uploaded, i.e. the recipent of the PGP message
$recp="First Last <user@domain.com>";

$data="Text that will be encrypted";


$command 'echo "'.$data.'" | '.$pgp.' -a --always-trust --batch --no-secmem-warning -e -u "'.$user.'" -r "'.$recp.'"';

$oldhome getEnv("HOME");

putenv("HOME=/home/$username");
$result exec($command$encrypted$errorcode);
putenv("HOME=$oldhome");

$message implode("\n"$encrypted);
if(
ereg("-----BEGIN PGP MESSAGE-----.*-----END PGP MESSAGE-----",$message))
{
        echo 
"It Worked";
}else
{
        echo 
"It failed";
}
$subject="Test message";
$header="From: $user";

echo 
"Message<br>";
echo 
nl2br($message);

mail($recp,$subject,$message,$header);
?>



Based on original by Kelvin Phillips.



Categories Return to Main PHP Faq

Code


 

Questions

Code
How do I get a user's IP address?
How do I generate a random number from php?
How do I insert javascript in php code?
How can I send variables from a PHP script to another URL using POST without using forms and hidden variables?
How can I create thumbnails using PHP?
Can I create PDF files from php?
I keep getting "headers already sent" whilst trying to use sessions
Is it possible to send HTML mail with php?
How do I user authentication in php?
How do i upload files from php to my ISP / server?
How do I format a number correctly?
How do I set the browser timeout?
How can I create random passwords?
Is there a way to encrypt text from php?
How can I limit search results so that there is a "Next 10" and "Previous 10"?
How do I find out weather a number is odd or even?
How can I protect pages using MySQL and PHP?
What's the difference between the *connect and *pconnect database functions?
How to access a COM object from within my PHP page?
How do I check whether a string contains HTML?
How to output a number with leading zero's?
How to count number of parameters given in URL by POST?
Is it possible to spell check texts from php?
Does anyone know some URLS for good tutorials on PHP?
How can I do error handling in php?
How do I get the total size of a certain directory?
How can I get the DNS servers of a domain name?
How do I make links on mail and www links on my pages?
How do I work with dates in php?
Is it possible to connect to a ftp server with php?
Using Curl can I access the OpenSRS admin control panel (tucows)
Is it possible to validate an e-mail in php?
I keep getting "Data Missing" when I click the "back" button in my browser. How can I stop this?
How can I mail the content of a form?
I have an array of values and want to show them all reccursivly how?
Use ereg_replace to replace only the first occurence of a string instead of all?
How do I find out if an array has values posted to each of its elements? I need to know that EVERY element has been filled out.
How do you colour code the source in the answers on alt-php-faq.org?
I have upgraded to PHP-4.0.5, since doing that some of my scripts are just showing the source code?
 

Return to the main FAQ list



Design & Layout Copyright © 2000- 2008 PHP MySQL Web Hosting Comments to Webmaster
Hosted by PHP 4 Hosting - PHP and MySQL Webhosting and Domain Names