Bonjour à tous,
Voilà le problème je dois décrypter une chaîne de caractères envoyée par un web service (le cryptage est en 3DES et fait sous windev).
On m'as transmis la clé bien évidemment mais je n'ai pas plus d'infos quant au mode de cryptage (ECB, CFB..)
Je fais donc un appel curl pour récupérer le contenu d'une page de test qui renvoie la chaîne 'hello world' cryptée sous cette forme: @#m��2ی���D����$���
- La chaîne cryptée varie à chaque retour curl, comme si une contrainte aléatoire avait été intégrée à la phase de cryptage
- J'ai essayé plusieurs scripts dont celui ci-dessous qui as l'air fonctionnel mais ne décrypte rien du tout:
Auriez vous quelques pistes ou une idée de la manière dont Windev procède au cryptage en tripleDES ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 public function decrypt($data, $secret) { //Generate a key from a hash $key = md5(utf8_encode($secret), true); //Take first 8 bytes of $key and append them to the end of $key. $key .= substr($key, 0, 8); $data = base64_decode($data); $data = mcrypt_decrypt('tripledes', $key, $data, 'ecb'); $block = mcrypt_get_block_size('tripledes', 'ecb'); $len = strlen($data); $pad = ord($data[$len-1]); return substr($data, 0, strlen($data) - $pad); }
Merci d'avance
Partager