Enkripsi Phalcon

Phalcon menyediakan fasilitas enkripsi melalui komponen Phalcon \ Crypt . Kelas ini menawarkan sebuah paket berorientasi objek sederhana untuk library enkripsi PHP mcrypt.

Secara default, komponen ini menyediakan enkripsi yg aman menggunakan AES-256 (rijndael-256-cbc).

Penggunaan dasar 

Komponen ini dirancang untuk memberikan penggunaan yang sangat sederhana:

<?php

//Create an instance
$crypt = new Phalcon\Crypt();

$key = 'le password';
$text = 'This is a secret text';

$encrypted = $crypt->encrypt($text, $key);

echo $crypt->decrypt($encrypted, $key);

Anda dapat menggunakan instance yang sama untuk mengenkripsi / mendekripsi beberapa kali:

<?php

//Create an instance
$crypt = new Phalcon\Crypt();

$texts = array(
    'my-key' => 'This is a secret text',
    'other-key' => 'This is a very secret'
);

foreach ($texts as $key => $text) {

    //Perform the encryption
    $encrypted = $crypt->encrypt($text, $key);

    //Now decrypt
    echo $crypt->decrypt($encrypted, $key);
}

Opsi Enkripsi 

Pilihan berikut tersedia untuk mengubah perilaku enkripsi:

Nama Deskripsi
Cipher Cipher merupakan salah satu algoritma enkripsi yang didukung oleh libmcrypt. Anda dapat melihat daftarnya di sini
Mode Salah satu mode enkripsi yang didukung oleh libmcrypt (ECB, cbc, CFB, OFB)

Contoh:

<?php

//Create an instance
$crypt = new Phalcon\Crypt();

//Use blowfish
$crypt->setCipher('blowfish');

$key = 'le password';
$text = 'This is a secret text';

echo $crypt->encrypt($text, $key);

Dukungan Base64 

Supaya hasil enkripsi dapat ditransmisikan dengan baik (email) atau ditampilkan (browser) encoding base64  biasanya diterapkan pada teks terenkripsi:

<?php

//Create an instance
$crypt = new Phalcon\Crypt();

$key = 'le password';
$text = 'This is a secret text';

$encrypt = $crypt->encryptBase64($text, $key);

echo $crypt->decryptBase64($text, $key);

Menyiapkan layanan Enkripsi 

Anda dapat mengatur komponen enkripsi dalam wadah layanan untuk menggunakannya di setiap bagian dari aplikasi:

<?php

$di->set('crypt', function() {

    $crypt = new Phalcon\Crypt();

    //Set a global encryption key
    $crypt->setKey('%31.1e$i86e$f!8jz');

    return $crypt;
}, true);

Kemudian, misalnya, di controller Anda dapat menggunakannya sebagai berikut:

<?php

use Phalcon\Mvc\Controller;

class SecretsController extends Controller
{

    public function saveAction()
    {
        $secret = new Secrets();

        $text = $this->request->getPost('text');

        $secret->content = $this->crypt->encrypt($text);

        if ($secret->save()) {
            $this->flash->success('Secret was successfully created!');
        }

    }

}