ホームページ  >  記事  >  php教程  >  PHP暗号化・復号化機能 dencrypt(動的暗号文、圧縮機能付き、中国語対応)

PHP暗号化・復号化機能 dencrypt(動的暗号文、圧縮機能付き、中国語対応)

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

コードをコピー コードは次のとおりです:


// ---------------- -------------------------------------------------- -- -
// | ウィルコ フレームワーク
// --------------------------------- - ----------------------------------
// 著作権 (c) 2008-2009 Willko Cheng |
// -------------------------------------- --- --------------------------
// 著者: Willko Cheng >// ----------------------------------------------- --- --------------------
// $string 平文または暗号文
// $isEncrypt 暗号化するかどうか
// $key key
// SHA1 を使用してキーブックを生成し、ZLIB を使用して 300 文字を超える文字を圧縮します
function dencrypt($string, $isEncrypt = true, $key = KEY_SPACE) {
if (! isset($string{0 }) || !isset($key{0})) {
return false;

$dynKey = $isEncrypt ? (true)) : substr ($string, 0, 40);
$fixedKey = hash('sha1', $key);

$dynKeyPart1 = substr($dynKey, 0, 20);
$dynKeyPart2 = substr($dynKey, 20);
$fixedKeyPart1 = substr($fixedKey, 0, 20);
$fixedKeyPart2 = substr($fixedKey, 20); hash('sha1', $dynKeyPart1 . $dynKeyPart2 . $fixedKeyPart2);

$string = $string . $dynKeyPart2 : (isset($string{339}) gzuncompress(base64_decode(substr( $string, 40))) :base64_decode(substr($string, 40)));

$n = ''; len = strlen($string );

for ($n = 0; $n < $len; $n ) {
$result .= chr(ord($string{$n}) ^ ord($key{ $n % 40}));
}
return $dynKey ? str_replace($n > 299 ? gzcompress($result) : $result)) : substr($result, 20, -20)
}

;

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