Skip to content

A secure and simple encryption library using SHA-512, AES-256-CBC, and BASE64

License

Notifications You must be signed in to change notification settings

shiwildy/SEncrypt

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SEncrypt

SEncrypt is a secure & simple encryption library using SHA-512, AES-256-CBC, and BASE64. It provides easy-to-use methods for encrypting and decrypting data securely.

Installation

composer require shiwildy/sencrypt

Example

<?php
    require 'vendor/autoload.php';
    use ShiWildy\SEncrypt;

    $plaintext = "Hello, just testing..";
    $password = "secret";

    try {
        $encrypted = SEncrypt::encrypt($plaintext, $password);
        echo "Encrypted: " . $encrypted . "\n\n";

        $decrypted = SEncrypt::decrypt($encrypted, $password);
        echo "Decrypted: " . $decrypted . "\n\n";

    } catch (Exception $e) {
        echo "An error occurred: " . $e->getMessage() . "\n";
    }
?>

How It Works ?

Encryption:

  • Salt Generation: A random salt generated to enhance security.
  • Key Derivation: Encryption key is derived from the provided password and generated salt using PBKDF2 Algoritm with SHA-512
  • IV Generation: A random initialization vector [IV] generated for use on AES-256-CBC
  • Combining Data: Salt, IV, and encrypted data are concatenated and then encoded using base64 to create final encrypted output.

Decryption:

  • Base64 Decode: Encrypted data is first decoded from Base64.
  • Data Extraction: salt, IV, and encrypted text are extracted from decoded data.
  • Key Derivation: Decryption key is derived using same method in encryption.
  • Decryption: Encrypted data is decrypted using derived key and IV.
  • Output: Decrypted text returned.

Contributing

Contributions are welcome! Please open an issue or submit a pull request for any enhancements or bug fixes.

License

This project licensed under The MIT License

Credits