PluginProbe ʕ •ᴥ•ʔ
JetBackup – Backup, Restore & Migrate / 2.0.3
JetBackup – Backup, Restore & Migrate v2.0.3
3.1.22.3 1.4.3 1.4.4 1.4.5 1.4.6 1.4.7 1.4.8 1.4.8.1 1.4.9 1.5.0 1.5.1 1.5.1.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.6.0 1.6.10 1.6.11 1.6.12 1.6.13 1.6.15 1.6.5.1 1.6.8.8 1.6.9 1.6.9.1 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7.5 2.0.8.7 2.0.9.11 2.0.9.14 2.0.9.15 2.0.9.6 2.0.9.7 2.0.9.9 3.1.10.7 3.1.11.1 3.1.12.3 3.1.13.4 3.1.14.17 3.1.15.4 3.1.16.1 3.1.17.5 3.1.18.10 3.1.18.8 3.1.18.9 3.1.19.8 3.1.20.3 3.1.21.3 3.1.7.9 3.1.9.2 trunk 1.1.90 1.1.91 1.2.0 1.2.5 1.2.6 1.2.7 1.2.8 1.2.9 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.3.6 1.3.7 1.3.8 1.3.9 1.4.0 1.4.1 1.4.2
backup / com / lib / SGEncrypt.php
backup / com / lib Last commit date
BackupGuard 3 years ago Request 3 years ago SGCallback.php 3 years ago SGCdrEntry.php 3 years ago SGCharsetHandler.php 3 years ago SGEncrypt.php 3 years ago SGEntry.php 3 years ago SGFileEntry.php 3 years ago SGMysqldump.php 3 years ago SGReviewManager.php 3 years ago SGUploadHandler.php 3 years ago
SGEncrypt.php
59 lines
1 <?php
2
3 set_include_path(SG_LIB_PATH . 'phpseclib');
4 if (!class_exists('Crypt_AES')) {
5 include_once('Crypt/AES.php');
6 }
7 if (!function_exists('crypt_random_string')) {
8 include_once('Crypt/Random.php');
9 }
10
11 class SGEncrypt
12 {
13 public static function encrypt($data, $key)
14 {
15 $iv = self::generateIV();
16 $cipher = self::getCipher($iv, $key);
17 $data = $cipher->encrypt($data);
18
19 return $iv . $data;
20 }
21
22 public static function decrypt($encrypted, $key)
23 {
24 list($iv, $data) = self::extractIV($encrypted);
25
26 $cipher = self::getCipher($iv, $key);
27 return $cipher->decrypt($data);
28 }
29
30 private static function getCipher($iv, $key)
31 {
32 $cipher = new Crypt_AES('cbc');
33 $cipher->setKeyLength(256);
34 $cipher->setKey(hex2bin(hash('sha256', $key)));
35 $cipher->setIV($iv);
36
37 return $cipher;
38 }
39
40 private static function generateIV($length = 32)
41 {
42 return crypt_random_string($length);
43 }
44
45 private static function extractIV($data, $length = 32)
46 {
47 if (strlen($data) <= $length) {
48 $ftpPassword = SGConfig::get('SG_FTP_PASSWORD');
49 $data = self::encrypt($ftpPassword, NONCE_SALT);
50 SGConfig::set('SG_FTP_PASSWORD', base64_encode($data));
51 }
52
53 $iv = substr($data, 0, $length);
54 $data = substr($data, $length);
55
56 return [$iv, $data];
57 }
58 }
59