PHPackages                             shetabit/crypto - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. shetabit/crypto

ActiveLibrary

shetabit/crypto
===============

Asymmetric crypto package

v0.1.0(6y ago)6101MITPHPPHP &gt;=7.2

Since Jan 11Pushed 6y ago3 watchersCompare

[ Source](https://github.com/shetabit/crypto)[ Packagist](https://packagist.org/packages/shetabit/crypto)[ Docs](https://github.com/shetabit/crypto)[ RSS](/packages/shetabit-crypto/feed)WikiDiscussions master Synced 5d ago

READMEChangelog (1)Dependencies (2)Versions (2)Used By (0)

[![](resources/images/crypto.png?raw=true)](resources/images/crypto.png?raw=true)

Crypto
======

[](#crypto)

> This package can be used to **Encrypt**, **Decrypt** and **Sign** data using **Asymmetric** algorithms in php.

the below algoritms can be used:

- RSA
- DSA
- DH
- EC

Install
-------

[](#install)

Via Composer

```
$ composer require shetabit/payment
```

How to use
----------

[](#how-to-use)

here is a simple encoding/decoding example.

```
$crypto = new Crypto;

// generate private key
$privateKey = $crypto->createPrivateKey();
echo $privateKey;

// generate public key
$publicKey = $crypto->createPublicKey($privateKey);
echo $publicKey;

$data = 'a simple text';

// encrypt, plain data
$encryptedData = $crypto->encrypt($publicKey, $data);
echo $encryptedData;

// decrypt, encrypted data
$decryptedData = $crypto->decrypt($privateKey, $encryptedData);
echo $decryptedData;
```

#### Create private key

[](#create-private-key)

you can create a private key like the below

```
$crypt = new Crypt;

$privateKey = $crypt->createPrivateKey();

echo $privatekey;
```

the below algorithms can be used:

- RSA: use **Crypto::OPENSSL\_KEYTYPE\_RSA**
- DSA: use **Crypto::OPENSSL\_KEYTYPE\_DSA** (not completely supported by PHP OpenSSL)
- DH: use **Crypto::OPENSSL\_KEYTYPE\_DH** (not completely supported by PHP OpenSSL)
- EC: use **Crypto::OPENSSL\_KEYTYPE\_EC** (not completely supported by PHP OpenSSL)

```
$crypt = new Crypt;

$privateKey = $crypt->createPrivateKey(Crypto::OPENSSL_KEYTYPE_RSA);

echo $privatekey;
```

#### Create public key:

[](#create-public-key)

a public key can be generated using a private key

```
$privatekey = '-----BEGIN EC PRIVATE KEY-----
MIHuAgEBBEgC1SvKxAMTrXYmC9CV+euaL8KVemuuU6I9A5moUh4HgTzESYt35lgc
CiwMetwIaB9RHFM7869D4rClXvnxFy91nMklcY7IsCmgBwYFK4EEACehgZUDgZIA
BAHBdOduvUMAft3s3xq/70CyHtJTfbFAMmyE6rIOAXYlOcvCvwfLRTbAXkZ+PnU+
5SkSqpC036F02Hr8GNxToie+gLrEAsmjQwLImuN9o+1UPwYR3LdG8N4JsnFkIMYr
qTvrA+usw5pjfZmqE4hHlFVdIaIb7r2m8w2OEZTfsfxQjRzY6uE9P3711NWdZdP2
Rg==
-----END EC PRIVATE KEY-----';

$crypt = new Crypt;

$publicKey = $crypt->createPublicKey($privateKey);

echo $publicKey;
```

#### Encrypt data:

[](#encrypt-data)

- data must be in string format.
- you need a **valid public key** to encrypt data.

```
$publicKey = "-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzLBs9Y2+QSr8l5LV8beY
nidHPHhM0/zMy1V7CiTWQyQVyxsZKHQJZGP+zJNovSH+KG9wfUe5XnC7qVDU80Bi
ABfQFhLe+t7w8UnBbRnDxMnLCjoSrtG8ZlJBkfmvTMf4MdmvMUqzqUD+ssB76BOP
Cce7qGntIlhQOzj3crliLex6E4OmwUP9RgPtIz/GQuI+O/XSf6irkkRjE8Sq9J7S
zU7z/asXcSi9PMzql/3Z/K47azWBZJazpSf6rkfVQzsITcai+CaZvVItCrMq7z94
/poX24CX2MgOxWxv8thRG7jO7nNCT5Smc+wi1j3HXaxbnA3vcAt6yQ6ctXpf1rGI
FwIDAQAB
-----END PUBLIC KEY-----";

$data = 'this is a simple text';

$encryptedData = $crypto->encrypt($publicKey, $data);

echo $encryptedData;
```

#### Decrypt data:

[](#decrypt-data)

- you need a **valid public key** to decrypt data.

```
$privateKey='private key';

$encryptedData = 'encrypted data';

$decryptedData = $crypto->decrypt($privateKey, $encryptedData);

echo $decryptedData;
```

#### Sign data:

[](#sign-data)

- data must be in string format.
- you need a **valid public key** to sign data.

```
$privateKey = "-----BEGIN PRIVATE KEY-----
MIHuAgEBBEgC1SvKxAMTrXYmC9CV+euaL8KVemuuU6I9A5moUh4HgTzESYt35lgc
CiwMetwIaB9RHFM7869D4rClXvnxFy91nMklcY7IsCmgBwYFK4EEACehgZUDgZIA
BAHBdOduvUMAft3s3xq/70CyHtJTfbFAMmyE6rIOAXYlOcvCvwfLRTbAXkZ+PnU+
5SkSqpC036F02Hr8GNxToie+gLrEAsmjQwLImuN9o+1UPwYR3LdG8N4JsnFkIMYr
qTvrA+usw5pjfZmqE4hHlFVdIaIb7r2m8w2OEZTfsfxQjRzY6uE9P3711NWdZdP2
Rg==
-----END EC PRIVATE KEY-----";

$data = 'this is a simple text';

$signature = $crypto->sign($privateKey, $data);

echo $signature;
```

#### verify signature:

[](#verify-signature)

- you need a **valid public key** to verify data.

```
$publicKey = "-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzLBs9Y2+QSr8l5LV8beY
nidHPHhM0/zMy1V7CiTWQyQVyxsZKHQJZGP+zJNovSH+KG9wfUe5XnC7qVDU80Bi
ABfQFhLe+t7w8UnBbRnDxMnLCjoSrtG8ZlJBkfmvTMf4MdmvMUqzqUD+ssB76BOP
Cce7qGntIlhQOzj3crliLex6E4OmwUP9RgPtIz/GQuI+O/XSf6irkkRjE8Sq9J7S
zU7z/asXcSi9PMzql/3Z/K47azWBZJazpSf6rkfVQzsITcai+CaZvVItCrMq7z94
/poX24CX2MgOxWxv8thRG7jO7nNCT5Smc+wi1j3HXaxbnA3vcAt6yQ6ctXpf1rGI
FwIDAQAB
-----END PUBLIC KEY-----";

$signature = 'this is a signature';

$verification = $crypto->encrypt($publicKey, $data);

echo $encryptedData ? 'true' : 'false';
```

###  Health Score

22

—

LowBetter than 22% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity11

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity41

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

2318d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/9d73b855df70ba50a46d879126a3f32fb173d12ca3e778e0a72b7398cbef8a26?d=identicon)[shetabit](/maintainers/shetabit)

---

Top Contributors

[![roshedgostarandev1](https://avatars.githubusercontent.com/u/52368299?v=4)](https://github.com/roshedgostarandev1 "roshedgostarandev1 (9 commits)")

---

Tags

asymmetric-cryptographyeccphpphp-asymmetric-cryptographyrsacryptorsaececcshetabitdsaDHshetabit cryptoapi cryptosecure apiapi cipherasymmetric crypto

###  Code Quality

TestsPHPUnit

Code StylePHP\_CodeSniffer

### Embed Badge

![Health badge](/badges/shetabit-crypto/health.svg)

```
[![Health](https://phpackages.com/badges/shetabit-crypto/health.svg)](https://phpackages.com/packages/shetabit-crypto)
```

###  Alternatives

[phpseclib/phpseclib

PHP Secure Communications Library - Pure-PHP implementations of RSA, AES, SSH2, SFTP, X.509 etc.

5.6k434.8M1.3k](/packages/phpseclib-phpseclib)[defuse/php-encryption

Secure PHP Encryption Library

3.9k162.4M214](/packages/defuse-php-encryption)[spomky-labs/pki-framework

A PHP framework for managing Public Key Infrastructures. It comprises X.509 public key certificates, attribute certificates, certification requests and certification path validation.

2725.9M11](/packages/spomky-labs-pki-framework)[ionux/phactor

Phactor is a high-performance PHP implementation of the elliptic curve math functions required to generate &amp; verify private/public (asymmetric) EC keypairs and ECDSA signatures based on secp256k1 curve parameters. This library also includes a class to generate Service Identification Numbers (SINs) based on the published Identity Protocol v1 spec.

5275.0k30](/packages/ionux-phactor)[sop/crypto-types

A PHP library of various ASN.1 types for cryptographic applications.

111.4M33](/packages/sop-crypto-types)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
