Completed
Push — master ( 8fe1b2...42aba3 )
by Michael
03:39
created

Aes256Base64::encrypt()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 4
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 1
1
<?php
2
3
namespace Dcrypt\Examples;
4
5
class Aes256Base64 extends \Dcrypt\OpensslBridge
6
{
7
    const CIPHER = 'aes-256-gcm';
8
9
    const ALGO = 'sha256';
10
11
    /**
12
     * Cost value of zero because we are using a key.
13
     *
14
     * @var int
15
     */
16
    const COST = 0;
17
18
    /**
19
     * An example key generated with linux command:  head -c 256 /dev/urandom | base64 --wrap 64
20
     *
21
     * DO NOT ACTUALLY USE THIS KEY
22
     *
23
     * @var string
24
     */
25
    const KEY = '
26
        QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
27
        QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
28
        QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
29
        QUFBQQ==
30
    ';
31
32
    public static function decrypt(string $data): string
33
    {
34
        return parent::decrypt(\base64_decode($data), self::KEY);
35
    }
36
37
    public static function encrypt(string $data): string
38
    {
39
        return \base64_encode(parent::encrypt($data, self::KEY));
40
    }
41
}