|
|
|
@ -7,6 +7,8 @@ define("_LOG_MSG_ERROR", 1);
|
|
|
|
|
define("_LOG_MSG_ALL", 2); |
|
|
|
|
define("_LOG_MSG_DISPLAY", 3); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* |
|
|
|
|
* funcoes compartilhadas |
|
|
|
|
* - GetDddPadrao()($numero) -> Se passado um numero retorna concatenado com ddd padrao, se nao retorna somente o ddd. |
|
|
|
@ -549,28 +551,95 @@ function logBkp($msg, $logDate = true, $echo = true) {
|
|
|
|
|
GravaLog($log, BackupConfig::$logFile); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* |
|
|
|
|
* Função defini chave default |
|
|
|
|
*/ |
|
|
|
|
function KeyCrypt($key = '') { |
|
|
|
|
return $key ? $key : "A32589Ba83F3aA5a8b1737339604B609"; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* |
|
|
|
|
* Função retorna o tamanho do valor IV (vetor de inicialização) para criptografar e descriptogradar |
|
|
|
|
* |
|
|
|
|
* https://pt.wikipedia.org/wiki/Vetor_de_inicializa%C3%A7%C3%A3o |
|
|
|
|
* |
|
|
|
|
* \return 16 |
|
|
|
|
*/ |
|
|
|
|
function Crypt_IVSize(){ |
|
|
|
|
return 16; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/* |
|
|
|
|
* Função retorna o tamanho da chave usada pela criptografia |
|
|
|
|
* |
|
|
|
|
* AES-256 = 256 bits = 32 bytes |
|
|
|
|
* |
|
|
|
|
* \return 32 |
|
|
|
|
*/ |
|
|
|
|
function Crypt_KeyAESSize(){ |
|
|
|
|
return 32; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* |
|
|
|
|
* Retorna a string aes-256-cbc para usar openssl |
|
|
|
|
* |
|
|
|
|
* \return "aes-256-cbc" |
|
|
|
|
*/ |
|
|
|
|
function Crypt_CipherAES(){ |
|
|
|
|
return "aes-256-cbc"; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* |
|
|
|
|
* Encripta text AES-256 |
|
|
|
|
* |
|
|
|
|
* \param $text dados para encriptar |
|
|
|
|
* \param $key chave para encriptar, se for vazio obterá da função KeyCrypt |
|
|
|
|
* |
|
|
|
|
* A chave passada pela hash e obtido apenas o primeiro 32 bytes |
|
|
|
|
* |
|
|
|
|
* \return retorna dados cifrado em base64 |
|
|
|
|
*/ |
|
|
|
|
function Encrypt($text, $key = '') { |
|
|
|
|
$ivSize = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_CBC); |
|
|
|
|
$keySize = mcrypt_get_key_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_CBC); |
|
|
|
|
$iv = mcrypt_create_iv($ivSize, MCRYPT_DEV_URANDOM); |
|
|
|
|
$key = substr(hash('sha256', KeyCrypt($key)), 0, $keySize); |
|
|
|
|
$encryptedData = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $text, MCRYPT_MODE_CBC, $iv); |
|
|
|
|
|
|
|
|
|
$ivSize = Crypt_IVSize(); |
|
|
|
|
$keySize = Crypt_KeyAESSize(); |
|
|
|
|
|
|
|
|
|
$iv = random_bytes($ivSize); |
|
|
|
|
$key = substr( hash('sha256', KeyCrypt( $key )), 0, $keySize ); |
|
|
|
|
|
|
|
|
|
$encryptedData = openssl_encrypt($text, Crypt_CipherAES(), $key, OPENSSL_RAW_DATA, $iv ); |
|
|
|
|
|
|
|
|
|
// base64([iv 0 - 16] + cripty) |
|
|
|
|
return base64_encode($iv . $encryptedData); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
function Decrypt($text, $key = '') { |
|
|
|
|
$ivSize = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_CBC); |
|
|
|
|
$keySize = mcrypt_get_key_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_CBC); |
|
|
|
|
$data = base64_decode($text, true); |
|
|
|
|
|
|
|
|
|
/* |
|
|
|
|
* DEcripta text |
|
|
|
|
* |
|
|
|
|
* \param $data dados cifrado |
|
|
|
|
* \param $key chave para descriptografar, vazio obterá da função KeyCrypt |
|
|
|
|
* |
|
|
|
|
* \return retorna os dados decriptado |
|
|
|
|
*/ |
|
|
|
|
function Decrypt($data, $key = '') { |
|
|
|
|
$ivSize = Crypt_IVSize(); |
|
|
|
|
$keySize = Crypt_KeyAESSize(); |
|
|
|
|
|
|
|
|
|
$data_enc = base64_decode($data, true); |
|
|
|
|
$key = substr(hash('sha256', KeyCrypt($key)), 0, $keySize); |
|
|
|
|
$iv = substr($data, 0, $ivSize); |
|
|
|
|
$data = substr($data, $ivSize); |
|
|
|
|
$data = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, $data, MCRYPT_MODE_CBC, $iv); |
|
|
|
|
return rtrim($data, "\0"); |
|
|
|
|
|
|
|
|
|
$iv = substr($data_enc, 0, $ivSize); |
|
|
|
|
$data_enc = substr($data_enc, $ivSize); |
|
|
|
|
|
|
|
|
|
$data_dec = openssl_decrypt( $data_enc, Crypt_CipherAES(), $key, OPENSSL_RAW_DATA, $iv ); |
|
|
|
|
|
|
|
|
|
return rtrim($data_dec, "\0"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
function ErrorGetLast($type = "message") { |
|
|
|
|