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

Aes256Base64   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 37
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 1

Importance

Changes 0
Metric Value
wmc 2
lcom 0
cbo 1
dl 0
loc 37
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A decrypt() 0 4 1
A encrypt() 0 4 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
}