Heim > Backend-Entwicklung > PHP-Tutorial > (100%结贴)求把这几行代码翻译成PHP的。解决方案

(100%结贴)求把这几行代码翻译成PHP的。解决方案

WBOY
Freigeben: 2016-06-13 12:16:19
Original
885 Leute haben es durchsucht

(100%结贴)求把这几行代码翻译成PHP的。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

const<br /> <br />       XorKey:array[0..7] of Byte=($B2,$09,$AA,$55,$93,$6D,$84,$47); //字符串加密用<br /> <br />function Dec(Str:String):String;//字符解密函數<br />var<br />i,j:Integer;<br />begin<br />Result:='';<br />j:=0;<br />for i:=1 to Length(Str) div 2 do<br />    begin<br />      Result:=Result+Char(StrToInt('$'+Copy(Str,i*2-1,2)) xor XorKey[j]);<br />      j:=(j+1) mod 8;<br />    end;<br />end;
Nach dem Login kopieren



就上面几行代码,
求懂php的帮忙把这个函数翻译成php的,
我delphi加密,然后php解密,


我对php一点也不懂,但是懂调用。
------解决思路----------------------
$XorKey = array(0xB2,0x09,0xAA,0x55,0x93,0x6D,0x84,0x47);<br /><br />echo $s = enc('Edit2', $XorKey), PHP_EOL;<br /><br />echo dec($s, $XorKey);<br /><br />function Enc($Str, $XorKey) { //:String;//字符加密函數   這是用的一個異或加密<br />  $Result = '';<br />  $j = 0;<br />  for($i=0; $i<strlen($Str); $i++) {<br />    $Result .= sprintf('%02X', ord($Str{$i}) ^ $XorKey[$j]);<br />    $j = ($j+1) % 8;<br />  }<br />  return $Result;<br />}<br /><br />function Dec($str, $XorKey){<br />  $result = "";<br />  for($i=0, $j=0; $i<strlen($str); $i+=2) {<br />    $result .= chr(hexdec($str{$i} . $str{$i+1}) ^ $XorKey[$j]);<br />    $j = ++$j % 8;<br />  }<br />  return $result;<br />}<br />
Nach dem Login kopieren
F76DC321A1
Edit2

------解决思路----------------------
引用:
能顺便把加密函数也翻译一下吗

function Enc(Str:String):String;//字符加密函數 這是用的一個異或加密
var
i,j:Integer;
begin
Result:='';
j:=0;
for i:=1 to Length(Str) do
begin
Result:=Result+IntToHex(Byte(Str[i]) xor XorKey[j],2);
j:=(j+1) mod 8;
end;
end;



好测试密文


<br /><?php<br />$XorKey = array(0xB2,0x09,0xAA,0x55,0x93,0x6D,0x84,0x47);<br />function Dec($str){<br />    global $XorKey;<br />    $result = "";<br />    $j = 0;<br />    for ($i = 0; $i < strlen($str)/2; $i++)<br />    {<br />        $result = $result . chr(hexdec($str[$i*2] . $str[$i*2+1]) ^ $XorKey[$j]);<br />        $j = ++$j % 8;<br />    }<br />    return $result;<br />}<br /><br /><br />function Enc($str){<br />	global $XorKey;<br />	$result = "";<br />	$j = 0;<br />	for ($i = 0; $i < strlen($str); $i++)<br />	{<br />		$result = $result. dechex(ord($str[$i])^$XorKey[$j]);<br />		$j = ++$j % 8;<br />	}<br />	return $result;<br />}<br />echo Enc("Edit2")."\n";<br />echo Dec("F76DC321A1");
Nach dem Login kopieren

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage