FLUX RSS

  • YouTube
  • LinkedIn
  • Google

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 bendita função de criptografia.

Sofri um bocado tentando reescrever a função não pela complexidade do código e sim com as diferenças nos resultados.

A função faz uso dos operadores XOR et RSH na versão Delphi. O SHR foi relativamente fácil graças a experiência com operadores bit a bit e como a documentação do Delphi diz que o operador retira bits à direita

de um número inteiro (como se percebe uma abreviação de SHIFT Right e o inverso é o operador SHL ; SHIFT LEFT) J'ai couru quelques tests à l'aide de l'opérateur >;>; et a frappé tout d'abord.

Já o operador XOR foi mais complicado. O PHP possui este operador e não me dei o trabalho de me certificar se ambos fazem a mesma coisa. Só quando fiz alguns testes usando diferentes inteiros é que pude perceber que não dão resultados iguais. No Delphi ele sempre retornava algum número enquanto em PHP ele retornava 1 ou 0 (en fait, vrai ou faux).

Só quando li a documentação de ambas as linguagens percebi que são diferentes. No Delphi XOR é uma operação de comparação exclusiva (Ou exclusif) qui retourne true ou false Ou uma operação bit a bit de dois argumentos. No PHP XOR é apenas um operador para Ou exclusif. Ele não faz a operação de ajustes nos bits. O equivalente neste caso é o operador ^ (accent circonflexe).

Un autre apprentissage. Espero que ajude mais alguém algum dia.

Segue alguns links úteis.

http://php.net/manual/pt_BR/language.operators.bitwise.php

http://www.delphibasics.co.uk/RTL.asp?Name=xor

Commentaire (1)

  1. Gabriel Bonissoni

    cara…;. eu tava me batendo usando o xor no php…;. mudei para ^ e deu tudo certo. obrigado pela ajuda 😀

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Ce site utilise Akismet pour réduire le spam. Apprenez comment vos données de commentaire sont transformées.