User Tools

Site Tools


php:json_decryption

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
php:json_decryption [2018/11/27 14:50]
john
— (current)
Line 1: Line 1:
-===== JSON Decryption ===== 
-This code works with a JSON stream encrypted with CryptoJS. You can use PHP with openSSL support to decrypt the data stream using your password.   
  
-<code> 
-/** 
-* Decrypt data from a CryptoJS json encoding string 
-* 
-* @param mixed $passphrase 
-* @param mixed $jsonString 
-* @return mixed 
-*/ 
-function Decrypt($passphrase, $jsonString){ 
-    $jsondata = json_decode($jsonString, true); 
-    $salt = hex2bin($jsondata["s"]); 
-    $ct = base64_decode($jsondata["ct"]); 
-    $iv  = hex2bin($jsondata["iv"]); 
-    $concatedPassphrase = $passphrase.$salt; 
-    $md5 = array(); 
-    $md5[0] = md5($concatedPassphrase, true); 
-    $result = $md5[0]; 
-    for ($i = 1; $i < 3; $i++) { 
-        $md5[$i] = md5($md5[$i - 1].$concatedPassphrase, true); 
-        $result .= $md5[$i]; 
-    } 
-    $key = substr($result, 0, 32); 
-    $data = openssl_decrypt($ct, 'aes-256-cbc', $key, true, $iv); 
-    return json_decode($data, true); 
-} 
- 
-</code> 
- 
-=== Encrypt === 
-<code> 
-/** 
-* Encrypt value to a cryptojs compatiable json encoding string 
-* 
-* @param mixed $passphrase 
-* @param mixed $value 
-* @return string 
-*/ 
-function cryptoJsAesEncrypt($passphrase, $value){ 
-    $salt = openssl_random_pseudo_bytes(8); 
-    $salted = ''; 
-    $dx = ''; 
-    while (strlen($salted) < 48) { 
-        $dx = md5($dx.$passphrase.$salt, true); 
-        $salted .= $dx; 
-    } 
-    $key = substr($salted, 0, 32); 
-    $iv  = substr($salted, 32,16); 
-    $encrypted_data = openssl_encrypt(json_encode($value), 'aes-256-cbc', $key, true, $iv); 
-    $data = array("ct" => base64_encode($encrypted_data), "iv" => bin2hex($iv), "s" => bin2hex($salt)); 
-    return json_encode($data); 
-} 
- 
- 
- 
-</code> 
- 
-=== Execute === 
-<code> 
- 
-$json = file_get_contents('https://encryptedURL'); 
-$data = json_decode($json); 
-$secret = "YOUR PASSWORD"; 
-$rdat = Decrypt($secret, $json); 
-echo $rdat; 
- 
-</code> 
php/json_decryption.1543348206.txt.gz ยท Last modified: 2018/11/27 14:50 by john