Giter Site home page Giter Site logo

php-encryption's Introduction

Build Status StyleCI

PHP Encryption

Encryption in PHP.

Requirement

  1. PHP 7 (7.3 Recommanded).
  2. Composer.
  3. openSSL php extension.
  4. Sodium php extension for use sodium adapter.

Insallation

Installing this package is very simple, first ensure you have the right PHP version and composer installed then in your terminal/(command prompt) run: composer require lablnet/encryption

Encrypt

You can encrypt string by calling to encrypt method

<?php 
use Lablnet\Encryption;
require '../vendor/autoload.php';

$encryption = new Encryption('your-key');

//Encrypt the message
$encrypt = $encryption->encrypt("This is a text");

echo $encrypt;

Decrypt

You can decrypt token by calling decrypt method

<?php 
use Lablnet\Encryption;
require '../vendor/autoload.php';

$encryption = new Encryption('your-key');

//Decrypt the message
$decrypt = $encryption->decrypt($encrypt);	
echo $decrypt;

Adapter

This Package support two encryption adapter

  • OpenSSL
  • Sodium

Default openSSL will use, you can use any one you want.

change Adapter

You can pass supported adapter to class like

Use of sodium

<?php 
use Lablnet\Encryption;
require '../vendor/autoload.php';

$encryption = new Encryption('your-key','sodium');

Use of openSSL

<?php 
use Lablnet\Encryption;
require '../vendor/autoload.php';

$encryption = new Encryption('your-key','openssl');

Contributions

There is still a lot of work to do, so feel free to contribute to open PR

License

MIT

Support

Donate coffee?
here is the bitcoin address
Balance

37x6PA4qtPu2fQnYdW5U7jztYhbchASpBV

Thanks you so much.

Disclaimer

I don't Accept any responsibility for any illegal usage

php-encryption's People

Contributors

lablnet avatar peter279k avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

php-encryption's Issues

Security vulnerability

Hi,

I am trying to test the encryption class, and find that even with a static key, the result changes every single time the script is run.

Also if I paste back into the script an encrypted string then even if the key is changed the string is decrypted..... That cant be right surely, because every single person that runs your class would be able to just decrypt strings without knowing the key?

running this code will replicate the issue

<?php

use Lablnet\Encryption;

require 'vendor/autoload.php';

$encryption = new Encryption('openssl','test');

//Encrypt the message
$encrypt = $encryption->encrypt('some text');
echo strlen(utf8_decode($encrypt)).'<br>';

echo 'Encrypted text: '.$encrypt;
echo "<br\>";

//Decrypt the message
$decrypt = $encryption->decrypt('SWJuRkE1SmxUS0FrRHpacXc0OG9raXl0MUZITnl3T3ZzM2FjcnlYbWViQT0mJmQwMzg3ZjUxYzliNzdmOThmZTRiNjQ0M2E0ODFiMmQ1');
echo '<br> Decrypted/plain text: '.$decrypt;
$decrypt2 = $encryption->decrypt($encrypt);
echo '<br>Decrypted/plain text: '.$decrypt2;

Can you tell me what the encoded string resolves too? Even though the key that encrypted it was not the one in the script?

Posted

Jason Ellmers in phpclasses site form.
image

The specific key should not have the default value

As title, it seems that the Encryption::__construct has the $key argument and it has the default key value.

I think it's not required because this key is up to the users to specify their key.

The $key always should be the required argument.

We don't have to set the default key because this will cause security problem.

Once someone know the default key from this repo, they will try to do some crack work.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.