dckarpov 0 Denunciar post Postado Junho 22, 2015 Gostaria de saber dos amigos, onde estou errando no codigo abaixo, e gostaria de ver quem pode me ajudar. Segue abaixo o codigo. function encriptar($texto) { $cripta=""; for ($i=1; $i<=strlen($texto); $i++) { if ($cripta == "" || $i > strlen("0123456789")) { $x=1; } else { $x++; } $cripta.=chr(255-(ord(substr($texto,$i-1,1))) + int[substr("0123456789",$x-1,1)]); } return $cripta; } Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Junho 22, 2015 Qual é o problema com o código? Dá erro? Qual? Compartilhar este post Link para o post Compartilhar em outros sites
dckarpov 0 Denunciar post Postado Junho 22, 2015 Beraldo, Dá o seguinte erro na linha 10 ($cripta.=chr(255-(ord(substr($texto,$i-1,1))) + int[substr("0123456789",$x-1,1)]);) Erro: Parse error: syntax error, unexpected '[' in Obrigado por me responder. Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Junho 22, 2015 Casting é feito com parênteses, não colchetes: $x = (int) $x; Veja mais detalhes aqui: http://php.net/manual/pt_BR/language.types.type-juggling.php#language.types.typecasting Compartilhar este post Link para o post Compartilhar em outros sites
dckarpov 0 Denunciar post Postado Junho 22, 2015 Cara beleza, realmente eu coloquei colchetes. Só que agora quando eu mando a função encriptar($resultado['nome']) me retorna outro erro na mesma linha. Erro: Fatal error: Call to undefined function Int() in O que estou errando. Te agradeço pela resposta. Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Junho 22, 2015 não é int($variavel) é (int) $variavel se quiser usar uma função, pode usar intval: intval($variavel) Compartilhar este post Link para o post Compartilhar em outros sites
dckarpov 0 Denunciar post Postado Junho 22, 2015 Deu certo não Beraldo. É que eu tinha essa função em (asp), e todos os dados do meu banco estão criptografados em cima dessa função: Function hash(texto) Dim cripta cripta = "" For i = 1 To Len(texto) If cripta = "" Or i > Len("0123456789") Then x = 1 Else x = x + 1 cripta = cripta & Chr(255 - (Asc(Mid(texto, i, 1))) + Int(Mid("0123456789",x,1)) ) Next hash = cripta End Function Aí adaptei para php achando que iria funcionar, trazendo os dados já descriptografado como no asp faz, más não deu certo. Valeu por me ajudar, agora se tiver uma luz aí, é muito bem vinda. Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Junho 22, 2015 Mostre como está seu código após as últimas modificações Compartilhar este post Link para o post Compartilhar em outros sites
dckarpov 0 Denunciar post Postado Junho 22, 2015 Beraldo segue o codigo: function encriptar($texto) { $cripta=""; for ($i=1; $i<=strlen($texto); $i++) { if ($cripta == "" || $i > strlen("0123456789")) { $x=1; } else { $x++; } $cripta.=chr(255-(ord(substr($texto,$i-1,1))) + intval(substr("0123456789",$x-1,1))); } return $cripta; } A chamada eu faço assim: <?php echo encriptar($resultado['nome']); ?> Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Junho 22, 2015 A função funciona aqui, sem mostrar erro algum Mas ela gera caracteres cuja representação é um simples "?" (a maioria acima do caractere 161 da tabela ASCII) Compartilhar este post Link para o post Compartilhar em outros sites
dckarpov 0 Denunciar post Postado Junho 22, 2015 É isso mesmo, ela funciona normal, mas o retorno dela que esta errado. Na função em asp o retorno criptografado de dckarpov é: " ·› ž’‘ " já na no php é: " =IIBvDgCAfg " ou seja nada a ver. Valeu cara, obrigado pela grande ajuda, vou ver o que fazer com esse banco de dados todo criptografado aqui. Compartilhar este post Link para o post Compartilhar em outros sites