Ejemplo n.º 1
0
/**
    This is an example of usage big_int extension

    RSA-like implementation of algorithm

    Attention: do not use this implementation in real life, because keys
    are generating with not very good "random generator". See microtime_generator()
    function below.
*/
require_once dirname(__FILE__) . '/std_header.php';
define('KEY_LENGTH', 1024);
// length of RSA keys
set_time_limit(0);
// generate RSA key pair
echo 'generating ' . KEY_LENGTH . '-bit key pair...';
$key_pair = generate_key_pair(KEY_LENGTH);
echo 'end' . "<br/>\n";
echo 'public key: [' . base64_encode($key_pair['public_key']) . ']' . "<br/>\n";
echo 'private key: [' . base64_encode($key_pair['private_key']) . ']' . "<br/>\n";
echo 'shared modulus: [' . base64_encode($key_pair['n']) . ']' . "<br/>\n";
// encrypt $text
$text = 'top secret message';
echo "plaintext [{$text}]<br/>\n";
$enc_text = encrypt_text($text, $key_pair['public_key'], $key_pair['n']);
echo 'encrypted text: [' . base64_encode($enc_text) . "]<br/>\n";
// decrypt text
$plain_text = encrypt_text($enc_text, $key_pair['private_key'], $key_pair['n']);
echo "decrypted text [{$plain_text}]<br>\n";
/************************************************************************/
/**
    encrypts / decrypts $text with key ($e, $n)
Ejemplo n.º 2
0
<?php

#generate a pair of public/private keys for authentication. The public key will be stored in s3db.org/central, along with the url for this implementation
require_once 'Crypt/RSA.php';
$keys = generate_key_pair();
/***********************************************************/
function generate_key_pair()
{
    $key_length = '64';
    $key_pair = new Crypt_RSA_KeyPair($key_length);
    check_error($key_pair);
    $public_key = $key_pair->getPublicKey();
    $private_key = $key_pair->getPrivateKey();
    $keys = array('public' => $public_key->toString(), 'private' => $private_key->toString());
    return $keys;
}
// error handler
function check_error(&$obj)
{
    if ($obj->isError()) {
        $error = $obj->getLastError();
        switch ($error->getCode()) {
            case CRYPT_RSA_ERROR_WRONG_TAIL:
                // nothing to do
                break;
            default:
                // echo error message and exit
                echo 'error: ', $error->getMessage();
                exit;
        }
    }
Ejemplo n.º 3
0
 * @package    Crypt_RSA
 * @author     Alexander Valyalkin <*****@*****.**>
 * @copyright  2005, 2006 Alexander Valyalkin
 * @license    http://www.php.net/license/3_0.txt  PHP License 3.0
 * @version    1.2.0b
 * @link       http://pear.php.net/package/Crypt_RSA
 */
/**
 * this is a sample script, which shows the usage of Crypt_RSA package
 */
require_once 'Crypt/RSA.php';
$task = isset($_GET['task']) ? $_GET['task'] : '';
session_start();
switch ($task) {
    case 'generate_key_pair':
        generate_key_pair();
        break;
    case 'create_sign':
        create_sign();
        break;
    case 'validate_sign':
        validate_sign();
        break;
    case 'encrypt':
        encrypt();
        break;
    case 'decrypt':
        decrypt();
        break;
}
print_layout();