Conversion de xor, RSH et shl de Delphi pour PHP
Je suis migration d'un logiciel fait en Delphi pour PHP et je suis tombé sur un problème dans un putain Fonction de cryptage béni.
J'ai souffert un peu en train de réécrire la fonction fait de la complexité du code et avec les différences dans les résultats.
La fonction fait appel à des opérateurs XOR et RSH dans la version de Delphi. La RSA a été relativement facile grâce à l'expérience avec les opérateurs de bits et comment Delphi documentation dit que l'opérateur tire sur bits vers la droite d'un entier (Comment comprendre une abréviation de SHIFT Rlumière et l'inverse est l'opérateur SHL –; SHIFT LEFT) J'ai couru quelques tests à l'aide de l'opérateur >> et a frappé tout d'abord.
L'opérateur XOR était déjà plus compliqué. PHP a cet opérateur et je n'a pas fonctionné pour vous assurer que si les deux font la même chose. Seulement quand j'ai fait quelques tests à l'aide de différents nombres entiers est que je pourrais réaliser qu'ils ne donnent pas les mêmes résultats. Dans Delphi il retournait toujours un nombre alors qu'en PHP, il retourne 1 ou 0 (en fait, vrai ou faux).
Seulement quand j'ai lu la documentation des deux langues, que j'ai réalisé différents. Dans Delphi XOR est une opération de comparaison unique (Ou exclusif) qui retourne true ou false Ou une opération de bits de deux arguments. PHP est uniquement un opérateur XOR à Ou exclusif. Il ne fait pas les ajustements dans l'opération de bits. L'équivalent est dans ce cas l'opérateur ^ (accent circonflexe).
Un autre apprentissage. Espérons que cela aide quelqu'un d'autre un jour.
S'ensuit quelques liens utiles.
Une réponse
cara…;. eu tava me batendo usando o xor no php…;. mudei para ^ e deu tudo certo. obrigado pela ajuda 😀