ホームページ >バックエンド開発 >PHPチュートリアル >そこにマスターはいますか - 可逆動的暗号化機能のソリューションを探しています (2-WAY PHP バージョン)
マスターはありますか - 可逆動的暗号化機能 (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