ホームページ  >  記事  >  バックエンド開発  >  そこにマスターはいますか - 可逆動的暗号化機能のソリューションを探しています (2-WAY PHP バージョン)

そこにマスターはいますか - 可逆動的暗号化機能のソリューションを探しています (2-WAY PHP バージョン)

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

マスターはありますか - 可逆動的暗号化機能 (2-WAY PHP バージョン) を探しています
http://www.xxx.tld/?user=K5idDC
http://www.xxx.tld/? user =2RK4dm
http://www.xxx.tld/?user=3wemcF
http://www.xxx.tld/?user=492mF3。 。 。 。 。 。

たとえば、上記のユーザー パラメーターの値はすべて同じユーザー名 (ABCD) の情報ページを指します。1 つのユーザー名を数千の暗号化されたユーザー名に対応させることができる動的可逆機能があります。可逆機能がないと対応関係を保存するのが非常に面倒です。

要件は次のとおりです。
1. 更新は 1 回限りであり、元に戻すことができます。
2. 暗号化されたコンテンツとほぼ同じ長さである必要があります。そんな機能?誰か知っていますか?シェアしてください、ありがとう!

オンラインで検索した DZ 関数による暗号化後の暗号文が長すぎるため、URL として使用するには適していません

-----解決策--------- ----- ------
Iijkl : ABCD
3STUV : ABCD

for($i=0; $i<10; $i++) {<br />  echo $m = encode('ABCD');<br />  echo ' : ' . decode($m) . PHP_EOL;<br />}<br /><br />function encode($s) {<br />  $d = array_map('chr', range(0x21, 0x7e));<br />  $len = count($d);<br />  $t = rand(0, $len);<br />  $r = $d[$t];<br />  for($i=0; $i<strlen($s); $i++) {<br />    $r .= $d[(ord($s{$i}) - 0x21 + $t) % $len];<br />  }<br />  return $r;<br />}<br /><br />function decode($s) {<br />  $d = array_map('chr', range(0x21, 0x7e));<br />  $len = count($d);<br />  $r = '';<br />  $t = array_search($s{0}, $d);<br />  for($i=1; $i<strlen($s); $i++) {<br />    $r .= $d[(ord($s{$i}) - 0x21 +($len - $t)) % $len];<br />  }<br />  return $r;<br />}<br />
)IJKL : ABCD
)IJKL : ABCD
Ddefg : ABCD
Zz{

-----解決策---------
} : ABCD@ `abc : ABCD
o1234 : ABCD
j,-./ : ABCD
3STUV : ABCD


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