ホームページ >バックエンド開発 >PHPチュートリアル >PHP と C の知識がある専門家が参加できます。

PHP と C の知識がある専門家が参加できます。

WBOY
WBOYオリジナル
2016-06-13 12:03:08964ブラウズ

PHP と C を少し知っているマスターが来ます
これはクライアント側の C バージョンの暗号化関数が必要です。

<br />void hdth_normal_decode(char * outstr,char * instr)<br />{<br />	int   i=0;<br />	int j = 0;<br />	int len = strlen(instr);<br />	for(i=0;i<len;i=i+2)   <br />	{   <br />		int   h=(instr[i]-'c');   <br />		int   l=(instr[i+1]-'f');   <br />		char  c=(l<<4)+(h&0xf);   <br />		outstr[j]=c;<br />		j++;<br />	}   <br /><br />	return;<br />}<br />


元のテキストを暗号文に変換する例を示します:

<br />原文:www.comunits.net<br />密文:jmjmjmqhflrlplhmqlllgmfmqhqlhlgm<br />

------解決策----------- ----- ---
まず復号化関数を php
function hdth_normal_decode($in) {<br />  $out = ''; <br />  $len = strlen($in);<br />  for($i=0; $i<$len; $i+=2) {<br />    $h = ord($in{$i}) - ord('c');<br />    $l = ord($in{$i+1}) - ord('f');<br />    $c = ($l << 4) + ($h & 0xf);<br />    $out .= chr($c);<br />  }<br />  return $out;<br />}
に移植し、次にその逆演算を見つけます
function hdth_normal_encode($in) {<br />  $out = '';<br />  $len = strlen($in);<br />  for($i=0; $i<$len; $i++) {<br />    $c = ord($in{$i});<br />    $l = ($c >> 4) + ord('f');<br />    $h = ($c & 0xf) + ord('c');<br />    $out .= chr($h) . chr($l);<br />  }<br />  return $out;<br />}
テストします
echo hdth_normal_encode('www.comunits.net');
jmjmjmqhflrlplhmqllllgmfmqhqlhlgm

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。