mcrypt_decrypt

(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_decryptDescriptografa texto criptografado com parâmetros fornecidos

Aviso

Esta função foi DESCONTINUADA a partir do PHP 7.1.0 e foi REMOVIDA a partir do PHP 7.2.0. O uso desta função é fortemente desencorajado.

Descrição

mcrypt_decrypt(
    string $cipher,
    string $key,
    string $data,
    string $mode,
    string $iv = ?
): string|false

Descriptografa os dados em data e retorna os dados não criptografados.

Parâmetros

cipher

Uma das constantes MCRYPT_nome_da_cifra ou o nome do algoritmo como string.

key

A chave com a qual os dados foram criptografados. Se o tamanho da chave fornecida não for suportado pela cifra, a função emitirá um aviso e retornará false

data

Os dados que serão descriptografados com cipher e mode fornecidos. Se o tamanho dos dados não for n * tamanho_do_bloco, os dados serão preenchidos com '\0'.

mode

Uma das constantes MCRYPT_MODE_nome_do_modo ou uma das seguintes strings: "ecb", "cbc", "cfb", "ofb", "nofb" ou "stream".

iv

Usado para a inicialização nos modos CBC, CFB, OFB e em alguns algoritmos no modo STREAM. Se o tamanho do IV fornecido não for suportado pelo modo de encadeamento ou nenhum IV for fornecido, mas o modo de encadeamento exigir um, a função emitirá um aviso e retornará false.

Valor Retornado

Retorna os dados descriptografados como uma string ou false em caso de falha.

Veja Também

adicione uma nota

Notas Enviadas por Usuários (em inglês) 1 note

up
32
eddiec at stararcher dot com
19 years ago
It appears that mcrypt_decrypt pads the *RETURN STRING* with nulls ('\0') to fill out to n * blocksize. For old C-programmers, like myself, it is easy to believe the string ends at the first null. In PHP it does not:

strlen("abc\0\0") returns 5 and *NOT* 3
strcmp("abc", "abc\0\0") returns -2 and *NOT* 0

I learned this lesson painfully when I passed a string returned from mycrypt_decrypt into a NuSoap message, which happily passed the nulls along to the receiver, who couldn't figure out what I was talking about.

My solution was:
<?php
$retval
= mcrypt_decrypt( ...etc ...);
$retval = rtrim($retval, "\0"); // trim ONLY the nulls at the END
?>
To Top