Ausecour ! probleme de cryptographie en php

vincent_vz Messages postés 7 Date d'inscription dimanche 6 mars 2005 Statut Membre Dernière intervention 21 juillet 2005 - 20 juil. 2005 à 23:10
vincent_vz Messages postés 7 Date d'inscription dimanche 6 mars 2005 Statut Membre Dernière intervention 21 juillet 2005 - 21 juil. 2005 à 13:48
Bonjour ! c'est avec sourire que je vien la meme si je suis en train de devenir fou...
voila le probleme :

j'ai une source java qui fonctionne parfaitement pour crypter/decrypter, j'essaye de la faire mais en php , et un probleme se pose.

Voila la fonction en java utilisé dans le procédé de crypto...

private long ModExp(long k, long e, long n) {
long temp;
long d;
int i,taille=0;

temp = e;
while(temp!=1) {temp>>=1;taille++;}
d = 1;
for(i=taille;i>=0;i--) {
d = d * d;
d = d % n;
if(((e>>i)&1)==1) {
d = d * k;
d = d % n;
}
}
return d;
}

et voila ma fonction php :

function Mod($k, $e, $n)
{
$temp = 0;
$d = 0;
$i = 0;
$taille = 0;
$temp = $e;

while($temp != 1) { $temp >>= 1; $taille++; }

$d = 1;

for($i = $taille ; $i >= 0 ; $i--)
{
$d = $d * $d;
$d = ($d % $n);

if((($e >> $i) & 1 ) == 1)
{
$d = $d * $k;
$d = $d % $n;
}
}
return $d;
}

je ne pense pas qu'il y est d'erreur, mais le probleme est que ma fonction en php me retourne des entier des fois négatif :| ...

Bref si ya des autres erreurs je ne sait pas, mais en tout cas aidez moi

Merci d'avance

++Vz

3 réponses

malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
21 juil. 2005 à 09:27
Hello,



veux bien essayer mais raffraichis moi la memoire, j'ai plus fait de java depuis 5 ans :

>> et >>=, ca veut dire quoi ?
0
cs_garfield90 Messages postés 388 Date d'inscription lundi 7 juillet 2003 Statut Webmaster Dernière intervention 10 février 2009
21 juil. 2005 à 11:59
si mes souvenirs sont bons, et si c'est pareil au C, c'est un décalage
de bit vers la droite ou gauche, utile pour les multiplicatoins et
divisions par des nombres type 2^n, et pour continuer dans les
souvenirs les précompilateurs C modifie le n/8 par n>>3 car plus
rapide



$a = $w >> n correspond a $w / 2^n

$a = $w << n correspond a $w * 2^n



va voir la pour les infos:

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



ou l'inverse je sais plus mais je ne crois pas que <<= ou >>= existe

"They are 10 sorts of persons whose understand binary and whose not"
0
vincent_vz Messages postés 7 Date d'inscription dimanche 6 mars 2005 Statut Membre Dernière intervention 21 juillet 2005
21 juil. 2005 à 13:48
alors, en java >>= veut dire dans un exemple...

aop1 >>= op2 decale les bits d'op1 d'op2 bits vers la droite et stocke dans op1

voila...
0