<?php // http://stackoverflow.com/questions/37719160/compare-the-data-of-two-csv-file
// https://i...content-available-to-author-only...e.com/uZnCVb
$srcText = "Hello World! - " . uniqid(); $key = 's7aBkf4Ypn59bWviQziPDXyPasdaYlhQ';
$srcEncrypted = '';
$srcDecrypted = '';
$srcEncrypted = encrypt($srcText, $key);
$srcDecrypted = decrypt($srcEncrypted, $key);
$srcEncrypted,
$srcDecrypted,
$srcDecrypted == $srcText);
/**
* Encrypt a string
*
* Include the exact length of the data string so we can return the exact length
* after the decryption.
*
* @Param string $data
* @Param string $key
*
* @return string - base64_encoded
*/
function encrypt($data, $key) {
$cypher = $cypher = 'aes-256-cbc';
$ivSize = openssl_cipher_iv_length($cypher);
$ivData = openssl_random_pseudo_bytes($ivSize);
$encripted = openssl_encrypt($data,
$cypher,
$key,
// USE THIS ONLY !!!!
OPENSSL_RAW_DATA,
$ivData);
}
/**
* Decrypt a string
*
* @Param string $data
* @Param string $key
*
* @return string - original text
*/
function decrypt($data, $key) {
$cypher = 'aes-256-cbc';
$ivSize = openssl_cipher_iv_length($cypher);
$ivData = substr($data, 0, $ivSize);
$encData = substr($data, $ivSize);
$output = openssl_decrypt($encData,
$cypher,
$key,
OPENSSL_RAW_DATA,
$ivData);
return $output;
}
PD9waHAgLy8gaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8zNzcxOTE2MC9jb21wYXJlLXRoZS1kYXRhLW9mLXR3by1jc3YtZmlsZQogICAgICAvLyBodHRwczovL2kuLi5jb250ZW50LWF2YWlsYWJsZS10by1hdXRob3Itb25seS4uLmUuY29tL3VabkNWYgogICAgICAKCiRzcmNUZXh0ID0gIkhlbGxvIFdvcmxkISAtICIgLiB1bmlxaWQoKTsKJGtleSAgICA9ICdzN2FCa2Y0WXBuNTliV3ZpUXppUERYeVBhc2RhWWxoUSc7Cgokc3JjRW5jcnlwdGVkICA9ICcnOwokc3JjRGVjcnlwdGVkICA9ICcnOwoKJHNyY0VuY3J5cHRlZCA9IGVuY3J5cHQoJHNyY1RleHQsICRrZXkpOwoKJHNyY0RlY3J5cHRlZCA9IGRlY3J5cHQoJHNyY0VuY3J5cHRlZCwgJGtleSk7Cgp2YXJfZHVtcCgkc3JjVGV4dCwgCiAgICAgICAgICRzcmNFbmNyeXB0ZWQsIAogICAgICAgICAkc3JjRGVjcnlwdGVkLCAKICAgICAgICAgJHNyY0RlY3J5cHRlZCA9PSAkc3JjVGV4dCk7CiAgICAgICAgIApleGl0KF9fRklMRV9fLl9fTElORV9fKTsKCgovKioKICogRW5jcnlwdCBhIHN0cmluZwogKiAKICogSW5jbHVkZSB0aGUgZXhhY3QgbGVuZ3RoIG9mIHRoZSBkYXRhIHN0cmluZyBzbyB3ZSBjYW4gcmV0dXJuIHRoZSBleGFjdCBsZW5ndGgKICogYWZ0ZXIgdGhlIGRlY3J5cHRpb24uCiAqICAgICAKICogQFBhcmFtIHN0cmluZyAkZGF0YSAKICogQFBhcmFtIHN0cmluZyAka2V5CiAqIAogKiBAcmV0dXJuIHN0cmluZyAgLSBiYXNlNjRfZW5jb2RlZCAgIAogKi8gCmZ1bmN0aW9uIGVuY3J5cHQoJGRhdGEsICRrZXkpIHsKCiAgJGN5cGhlciA9ICRjeXBoZXIgPSAnYWVzLTI1Ni1jYmMnOyAgCiAgJGl2U2l6ZSAgPSBvcGVuc3NsX2NpcGhlcl9pdl9sZW5ndGgoJGN5cGhlcik7CiAgJGl2RGF0YSAgPSBvcGVuc3NsX3JhbmRvbV9wc2V1ZG9fYnl0ZXMoJGl2U2l6ZSk7CiAgCiAgJGVuY3JpcHRlZCA9IG9wZW5zc2xfZW5jcnlwdCgkZGF0YSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRjeXBoZXIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAka2V5LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVVNFIFRISVMgT05MWSAhISEhCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9QRU5TU0xfUkFXX0RBVEEsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaXZEYXRhKTsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICByZXR1cm4gYmFzZTY0X2VuY29kZSgkaXZEYXRhICAuICRlbmNyaXB0ZWQpOwp9CgoKLyoqCiAqIERlY3J5cHQgYSBzdHJpbmcKICogCiAqIEBQYXJhbSBzdHJpbmcgJGRhdGEgCiAqIEBQYXJhbSBzdHJpbmcgJGtleQogKiAKICogQHJldHVybiBzdHJpbmcgIC0gb3JpZ2luYWwgdGV4dCAgIAogKi8gCmZ1bmN0aW9uIGRlY3J5cHQoJGRhdGEsICRrZXkpIHsKCiAgJGN5cGhlciA9ICdhZXMtMjU2LWNiYyc7ICAKICAkaXZTaXplICA9IG9wZW5zc2xfY2lwaGVyX2l2X2xlbmd0aCgkY3lwaGVyKTsKCiAgJGRhdGEgPSBiYXNlNjRfZGVjb2RlKCRkYXRhKTsKICAkaXZEYXRhICAgPSBzdWJzdHIoJGRhdGEsIDAsICRpdlNpemUpOwogICAKICAkZW5jRGF0YSA9IHN1YnN0cigkZGF0YSwgJGl2U2l6ZSk7CgogICRvdXRwdXQgPSBvcGVuc3NsX2RlY3J5cHQoJGVuY0RhdGEsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGN5cGhlciwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAka2V5LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9QRU5TU0xfUkFXX0RBVEEsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGl2RGF0YSk7CiAgcmV0dXJuICRvdXRwdXQ7Cn0K