PHP est l'un de ces langages que j'utilise périodiquement, mais je dois généralement épousseter les toiles d'araignée lorsque je recommence à les utiliser. La même chose s'applique cette semaine pendant que je porte du code C vers PHP. Cela utilise beaucoup de cryptage AES et SHA256 hachage - tout fonctionne bien jusqu'à présent. Cependant, les chaînes décryptées sortent sous la forme "C" - c'est-à-dire terminées avec un octet nul suivi par des octets de remplissage "garbage".Conversion d'une chaîne C ( 0 terminée) en une chaîne PHP
I actuellement « Trim » ces chaînes de style C à la forme PHP avec les éléments suivants:
$iv = strpos($hashsalt8, "\0");
if ($iv)
$hashsalt8 = substr($hashsalt8, 0, $iv);
Semble de longue haleine et qu'il devrait y avoir une place appel de fonction d'une ligne, mais je ne peux pas trouver il?
Remarque: Bien que dans ce cas, le nom "hash salt" implique que je pourrais connaître la longueur de la chaîne d'origine, cela est inconnu dans le cas général. Clairement, une solution à une ligne est disponible en utilisant substr()
lorsque la longueur est connue a priori.
Notez que le troisième paramètre est uniquement disponible en PHP 5.3+. – BoltClock
Ah ça l'explique: je reçois une erreur "nombre de paramètres incorrect", mais en cours d'exécution avec PHP 5.1.6. Si c'était mon propre serveur, je remplacerais probablement le PHP fourni, mais ce n'est pas le cas, donc je ne vais pas essayer. – winwaed
Cela semble être la réponse pour les personnes utilisant des versions ultérieures de PHP. Si rien d'autre qui s'applique à PHP 5.1.6 ne se présente, je vais marquer cela comme la réponse demain. – winwaed