PHP Classes

PHP RSA Encryption: Generate RSA keys and encrypt data using OpenSSL

Recommend this page to a friend!
  Info   View files Example   View files View files (12)   DownloadInstall with Composer Download .zip   Reputation   Support forum (3)   Blog    
Ratings Unique User Downloads Download Rankings
Not enough user ratingsTotal: 616 All time: 5,103 This week: 571Up
Version License PHP version Categories
rsa-encryption 1.0.4BSD License5.3.3PHP 5, Cryptography
Description 

Author

This class can RSA generate keys and encrypt data using OpenSSL.

It can generate public and private RSA keys of given length calling the openssl program.

The class and also encrypt data with a given public key file and decrypt data with a given private key file.

Picture of Dmitry Mamontov
  Performance   Level  
Name: Dmitry Mamontov <contact>
Classes: 16 packages by
Country: Russian Federation Russian Federation
Age: 33
All time rank: 78025 in Russian Federation Russian Federation
Week rank: 234 Up14 in Russian Federation Russian Federation Up
Innovation award
Innovation award
Nominee: 6x

Recommendations

rsa encryption and decryption
Encrypt and decrypt data using RSA algorithm

Example

<?php
/**
 * RSA Crypt
 *
 * Copyright (c) 2015, Dmitry Mamontov <d.slonyara@gmail.com>.
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 *
 * * Redistributions of source code must retain the above copyright
 * notice, this list of conditions and the following disclaimer.
 *
 * * Redistributions in binary form must reproduce the above copyright
 * notice, this list of conditions and the following disclaimer in
 * the documentation and/or other materials provided with the
 * distribution.
 *
 * * Neither the name of Dmitry Mamontov nor the names of his
 * contributors may be used to endorse or promote products derived
 * from this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
 * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
 * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 * POSSIBILITY OF SUCH DAMAGE.
 *
 * @package rsacrypt
 * @author Dmitry Mamontov <d.slonyara@gmail.com>
 * @copyright 2015 Dmitry Mamontov <d.slonyara@gmail.com>
 * @license http://www.opensource.org/licenses/BSD-3-Clause The BSD 3-Clause License
 * @since File available since Release 1.0.2
 */
 
require_once 'vendor/autoload.php';

$crypt = new RsaCrypt;

$crypt->genKeys(512);
$crypt->setPublicKey('public.pem');
$crypt->setPrivateKey('private.pem');
$data = $crypt->encrypt("Test Crypt");

echo
$data;
echo
$crypt->decrypt($data);


Details

Build Status Latest Stable Version License Total Downloads PHP Classes

RSA Crypt

This class can RSA generate keys and encrypt data using OpenSSL.

It can generate public and private RSA keys of given length calling the openssl program.

The class and also encrypt data with a given public key file and decrypt data with a given private key file.

More information

Requirements

  • PHP version ~5.3.3

Installation

1) Install composer

2) Follow in the project folder:

composer require dmamontov/rsacrypt ~1.0.2

In config composer.json your project will be added to the library dmamontov/rsacrypt, who settled in the folder vendor/. In the absence of a config file or folder with vendors they will be created.

If before your project is not used composer, connect the startup file vendors. To do this, enter the code in the project:

require 'path/to/vendor/autoload.php';

Example of work

$crypt = new RsaCrypt;

$crypt->genKeys(2048);
$crypt->setPublicKey('public.pem');
$crypt->setPrivateKey('private.pem');
$data = $crypt->encrypt("Test Crypt");

echo $data;
echo $crypt->decrypt($data);

  Files folder image Files  
File Role Description
Files folder imagesrc (1 file)
Files folder imagetests (2 files, 1 directory)
Accessible without login Plain text file .travis.yml Data Auxiliary data
Accessible without login Plain text file apigen.neon Data Auxiliary data
Accessible without login Plain text file composer.json Data Auxiliary data
Accessible without login Plain text file example.php Example Example script
Accessible without login Plain text file LICENSE Lic. License text
Accessible without login Plain text file phpunit.xml.dist Data Auxiliary data
Accessible without login Plain text file README.md Doc. Documentation

  Files folder image Files  /  src  
File Role Description
  Plain text file RsaCrypt.php Class Class source

  Files folder image Files  /  tests  
File Role Description
Files folder image.files (2 files)
  Accessible without login Plain text file bootstrap.php Test Unit test script
  Accessible without login Plain text file RsaCryptTest.php Test Unit test script

  Files folder image Files  /  tests  /  .files  
File Role Description
  Accessible without login Plain text file private.pem Data Auxiliary data
  Accessible without login Plain text file public.pem Data Auxiliary data

 Version Control Unique User Downloads Download Rankings  
 100%
Total:616
This week:0
All time:5,103
This week:571Up