This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
php:json_decryption [2018/11/27 14:52] 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. | ||
- | ==== Decrypt ==== | ||
- | < | ||
- | /** | ||
- | * Decrypt data from a CryptoJS json encoding string | ||
- | * | ||
- | * @param mixed $passphrase | ||
- | * @param mixed $jsonString | ||
- | * @return mixed | ||
- | */ | ||
- | function Decrypt($passphrase, | ||
- | $jsondata = json_decode($jsonString, | ||
- | $salt = hex2bin($jsondata[" | ||
- | $ct = base64_decode($jsondata[" | ||
- | $iv = hex2bin($jsondata[" | ||
- | $concatedPassphrase = $passphrase.$salt; | ||
- | $md5 = array(); | ||
- | $md5[0] = md5($concatedPassphrase, | ||
- | $result = $md5[0]; | ||
- | for ($i = 1; $i < 3; $i++) { | ||
- | $md5[$i] = md5($md5[$i - 1].$concatedPassphrase, | ||
- | $result .= $md5[$i]; | ||
- | } | ||
- | $key = substr($result, | ||
- | $data = openssl_decrypt($ct, | ||
- | return json_decode($data, | ||
- | } | ||
- | |||
- | </ | ||
- | |||
- | ==== Encrypt ==== | ||
- | < | ||
- | /** | ||
- | * Encrypt value to a cryptojs compatiable json encoding string | ||
- | * | ||
- | * @param mixed $passphrase | ||
- | * @param mixed $value | ||
- | * @return string | ||
- | */ | ||
- | function Encrypt($passphrase, | ||
- | $salt = openssl_random_pseudo_bytes(8); | ||
- | $salted = ''; | ||
- | $dx = ''; | ||
- | while (strlen($salted) < 48) { | ||
- | $dx = md5($dx.$passphrase.$salt, | ||
- | $salted .= $dx; | ||
- | } | ||
- | $key = substr($salted, | ||
- | $iv = substr($salted, | ||
- | $encrypted_data = openssl_encrypt(json_encode($value), | ||
- | $data = array(" | ||
- | return json_encode($data); | ||
- | } | ||
- | |||
- | </ | ||
- | |||
- | ==== Execute ==== | ||
- | < | ||
- | |||
- | $json = file_get_contents(' | ||
- | $data = json_decode($json); | ||
- | $secret = "YOUR PASSWORD"; | ||
- | $rdat = Decrypt($secret, | ||
- | echo $rdat; | ||
- | |||
- | </ | ||
- | |||
- | ==== Example PHP ==== | ||
- | < | ||
- | $encrypted = Encrypt(" | ||
- | $decrypted = Decrypt(" | ||
- | </ |