/var/www/hkosl.com/demo_google/application/helpers/cryptojs-aes_helper.php


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
<?php
/**
 * Helper library for CryptoJS AES encryption/decryption
 * Allow you to use AES encryption on client side and server side vice versa
 *
 * @author BrainFooLong (bfldev.com)
 * @link https://github.com/brainfoolong/cryptojs-aes-php
 */

/**
 * Decrypt data from a CryptoJS json encoding string
 *
 * @param mixed $passphrase
 * @param mixed $jsonString
 * @return mixed
 */
if(!function_exists('cryptoJsAesDecrypt')) {
    function 
cryptoJsAesDecrypt($jsonString)
    {
        
$passphrase cryptoJSPW();
        
$jsondata json_decode($jsonStringtrue);
        try {
            
$salt hex2bin($jsondata["s"]);
            
$iv hex2bin($jsondata["iv"]);
        } catch (
Exception $e) {
            return 
null;
        }
        
$ct base64_decode($jsondata["ct"]);
        
$concatedPassphrase $passphrase $salt;
        
$md5 = array();
        
$md5[0] = md5($concatedPassphrasetrue);
        
$result $md5[0];
        for (
$i 1$i 3$i++) {
            
$md5[$i] = md5($md5[$i 1] . $concatedPassphrasetrue);
            
$result .= $md5[$i];
        }
        
$key substr($result032);
//    return ($iv);
        
$data openssl_decrypt($ct'aes-256-cbc'$keytrue$iv);
        return 
json_decode($datatrue);
    }
}

/**
 * Encrypt value to a cryptojs compatiable json encoding string
 *
 * @param mixed $passphrase
 * @param mixed $value
 * @return string
 */
if(!function_exists('cryptoJsAesEncrypt')) {
    function 
cryptoJsAesEncrypt($value)
    {
        
$passphrase cryptoJSPW();
        
$salt openssl_random_pseudo_bytes(8);
        
$salted '';
        
$dx '';
        while (
strlen($salted) < 48) {
            
$dx md5($dx $passphrase $salttrue);
            
$salted .= $dx;
        }
        
$key substr($salted032);
        
$iv substr($salted3216);
        
$encrypted_data openssl_encrypt(json_encode($value), 'aes-256-cbc'$keytrue$iv);
        
$data = array("ct" => base64_encode($encrypted_data), "iv" => bin2hex($iv), "s" => bin2hex($salt));
        return 
json_encode($data);
    }
}

if(!
function_exists('cryptoJSPW')){
    function 
cryptoJSPW(){
        return 
'aGm9Ss20rCZHnnnpZzoX6zWL246jkHHt4Vi9if4qWHiaqo6oqZJrdYyKZDMmxGM4';
    }
}