


Zusammenfassung der PHP-Methoden zum Verschlüsseln von Quellcode
Obwohl das Teilen eine traditionelle Tugend ist, arbeiten wir manchmal hart daran, einige Programme zu schreiben, nur um sie für ein wenig Geld zu verkaufen, harte Arbeit zu verdienen und um zu verhindern, dass einige skrupellose Leute sie weiterverkaufen. Deshalb müssen wir unsere Programme verschlüsseln. Wie folgt: Lassen Sie uns vorstellen, wie wir unseren PHP-Quellcode mithilfe der benutzerdefinierten Funktion von PHP verschlüsseln. Dieser Artikel gibt Ihnen hauptsächlich eine Zusammenfassung (empfohlen) verschiedener Methoden zum Verschlüsseln von Quellcode in PHP. Er hat einen guten Referenzwert und ich hoffe, dass er für alle hilfreich sein wird. Folgen wir dem Herausgeber, um einen Blick darauf zu werfen. Ich hoffe, es kann allen helfen.
Die erste Methode
<?php function encode_file_contents($filename) { $type=strtolower(substr(strrchr($filename,'.'),1)); if ('php' == $type && is_file($filename) && is_writable($filename)) { // 如果是PHP文件 并且可写 则进行压缩编码 $contents = file_get_contents($filename); // 判断文件是否已经被编码处理 $contents = php_strip_whitespace($filename); // 去除PHP头部和尾部标识 $headerPos = strpos($contents,'<?php'); $footerPos = strrpos($contents,'?>'); $contents = substr($contents, $headerPos + 5, $footerPos - $headerPos); $encode = base64_encode(gzdeflate($contents)); // 开始编码 $encode = '<?php'."\n eval(gzinflate(base64_decode("."'".$encode."'".")));\n\n?>"; return file_put_contents($filename, $encode); } return false; } //调用函数 $filename = 'dam.php'; encode_file_contents($filename); echo "OK,加密完成!" ?>
Die zweite Methode
<?php function RandAbc($length = "") { // 返回随机字符串 $str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; return str_shuffle($str); } $filename = 'index.php'; //要加密的文件 $T_k1 = RandAbc(); //随机密匙1 $T_k2 = RandAbc(); //随机密匙2 $vstr = file_get_contents($filename); $v1 = base64_encode($vstr); $c = strtr($v1, $T_k1, $T_k2); //根据密匙替换对应字符。 $c = $T_k1.$T_k2.$c; $q1 = "O00O0O"; $q2 = "O0O000"; $q3 = "O0OO00"; $q4 = "OO0O00"; $q5 = "OO0000"; $q6 = "O00OO0"; $s = '$'.$q6.'=urldecode("%6E1%7A%62%2F%6D%615%5C%76%740%6928%2D%70%78%75%71%79%2A6%6C%72%6B%64%679%5F%65%68%63%73%77%6F4%2B%6637%6A");$'.$q1.'=$'.$q6.'{3}.$'.$q6.'{6}.$'.$q6.'{33}.$'.$q6.'{30};$'.$q3.'=$'.$q6.'{33}.$'.$q6.'{10}.$'.$q6.'{24}.$'.$q6.'{10}.$'.$q6.'{24};$'.$q4.'=$'.$q3.'{0}.$'.$q6.'{18}.$'.$q6.'{3}.$'.$q3.'{0}.$'.$q3.'{1}.$'.$q6.'{24};$'.$q5.'=$'.$q6.'{7}.$'.$q6.'{13};$'.$q1.'.=$'.$q6.'{22}.$'.$q6.'{36}.$'.$q6.'{29}.$'.$q6.'{26}.$'.$q6.'{30}.$'.$q6.'{32}.$'.$q6.'{35}.$'.$q6.'{26}.$'.$q6.'{30};eval($'.$q1.'("'.base64_encode('$'.$q2.'="'.$c.'";eval(\'?>\'.$'.$q1.'($'.$q3.'($'.$q4.'($'.$q2.',$'.$q5.'*2),$'.$q4.'($'.$q2.',$'.$q5.',$'.$q5.'),$'.$q4.'($'.$q2.',0,$'.$q5.'))));').'"));'; $s = '<?php '."\n".$s."\n".' ?>'; //echo $s; // 生成 加密后的PHP文件 $fpp1 = fopen('temp_'.$filename, 'w'); fwrite($fpp1, $s) or die('写文件错误'); ?>
Die dritte Methode
<?php class text_auth { var $n_iter; function text_auth() { $this->setIter(32); } function setIter($n_iter) { $this->n_iter = $n_iter; } function getIter() { return $this->n_iter; } function encrypt($data, $key) { $n = $this->_resize($data, 4); $data_long[0] = $n; $n_data_long = $this->_str2long(1, $data, $data_long); $n = count($data_long); if (($n & 1) == 1) { $data_long[$n] = chr(0); $n_data_long++; } $this->_resize($key, 16, true); if ( '' == $key ) $key = '0000000000000000'; $n_key_long = $this->_str2long(0, $key, $key_long); $enc_data = ''; $w = array(0, 0); $j = 0; $k = array(0, 0, 0, 0); for ($i = 0; $i < $n_data_long; ++$i) { if ($j + 4 <= $n_key_long) { $k[0] = $key_long[$j]; $k[1] = $key_long[$j + 1]; $k[2] = $key_long[$j + 2]; $k[3] = $key_long[$j + 3]; } else { $k[0] = $key_long[$j % $n_key_long]; $k[1] = $key_long[($j + 1) % $n_key_long]; $k[2] = $key_long[($j + 2) % $n_key_long]; $k[3] = $key_long[($j + 3) % $n_key_long]; } $j = ($j + 4) % $n_key_long; $this->_encipherLong($data_long[$i], $data_long[++$i], $w, $k); $enc_data .= $this->_long2str($w[0]); $enc_data .= $this->_long2str($w[1]); } return $enc_data; } function decrypt($enc_data, $key) { $n_enc_data_long = $this->_str2long(0, $enc_data, $enc_data_long); $this->_resize($key, 16, true); if ( '' == $key ) $key = '0000000000000000'; $n_key_long = $this->_str2long(0, $key, $key_long); $data = ''; $w = array(0, 0); $j = 0; $len = 0; $k = array(0, 0, 0, 0); $pos = 0; for ($i = 0; $i < $n_enc_data_long; $i += 2) { if ($j + 4 <= $n_key_long) { $k[0] = $key_long[$j]; $k[1] = $key_long[$j + 1]; $k[2] = $key_long[$j + 2]; $k[3] = $key_long[$j + 3]; } else { $k[0] = $key_long[$j % $n_key_long]; $k[1] = $key_long[($j + 1) % $n_key_long]; $k[2] = $key_long[($j + 2) % $n_key_long]; $k[3] = $key_long[($j + 3) % $n_key_long]; } $j = ($j + 4) % $n_key_long; $this->_decipherLong($enc_data_long[$i], $enc_data_long[$i + 1], $w, $k); if (0 == $i) { $len = $w[0]; if (4 <= $len) { $data .= $this->_long2str($w[1]); } else { $data .= substr($this->_long2str($w[1]), 0, $len % 4); } } else { $pos = ($i - 1) * 4; if ($pos + 4 <= $len) { $data .= $this->_long2str($w[0]); if ($pos + 8 <= $len) { $data .= $this->_long2str($w[1]); } elseif ($pos + 4 < $len) { $data .= substr($this->_long2str($w[1]), 0, $len % 4); } } else { $data .= substr($this->_long2str($w[0]), 0, $len % 4); } } } return $data; } function _encipherLong($y, $z, &$w, &$k) { $sum = (integer) 0; $delta = 0x9E3779B9; $n = (integer) $this->n_iter; while ($n-- > 0) { $y = $this->_add($y, $this->_add($z << 4 ^ $this->_rshift($z, 5), $z) ^ $this->_add($sum, $k[$sum & 3])); $sum = $this->_add($sum, $delta); $z = $this->_add($z, $this->_add($y << 4 ^ $this->_rshift($y, 5), $y) ^ $this->_add($sum, $k[$this->_rshift($sum, 11) & 3])); } $w[0] = $y; $w[1] = $z; } function _decipherLong($y, $z, &$w, &$k) { $sum = 0xC6EF3720; $delta = 0x9E3779B9; $n = (integer) $this->n_iter; while ($n-- > 0) { $z = $this->_add($z, -($this->_add($y << 4 ^ $this->_rshift($y, 5), $y) ^ $this->_add($sum, $k[$this->_rshift($sum, 11) & 3]))); $sum = $this->_add($sum, -$delta); $y = $this->_add($y, -($this->_add($z << 4 ^ $this->_rshift($z, 5), $z) ^ $this->_add($sum, $k[$sum & 3]))); } $w[0] = $y; $w[1] = $z; } function _resize(&$data, $size, $nonull = false) { $n = strlen($data); $nmod = $n % $size; if ( 0 == $nmod ) $nmod = $size; if ($nmod > 0) { if ($nonull) { for ($i = $n; $i < $n - $nmod + $size; ++$i) { $data[$i] = $data[$i % $n]; } } else { for ($i = $n; $i < $n - $nmod + $size; ++$i) { $data[$i] = chr(0); } } } return $n; } function _hex2bin($str) { $len = strlen($str); return pack('H' . $len, $str); } function _str2long($start, &$data, &$data_long) { $n = strlen($data); $tmp = unpack('N*', $data); $j = $start; foreach ($tmp as $value) $data_long[$j++] = $value; return $j; } function _long2str($l) { return pack('N', $l); } function _rshift($integer, $n) { if (0xffffffff < $integer || -0xffffffff > $integer) { $integer = fmod($integer, 0xffffffff + 1); } if (0x7fffffff < $integer) { $integer -= 0xffffffff + 1.0; } elseif (-0x80000000 > $integer) { $integer += 0xffffffff + 1.0; } if (0 > $integer) { $integer &= 0x7fffffff; $integer >>= $n; $integer |= 1 << (31 - $n); } else { $integer >>= $n; } return $integer; } function _add($i1, $i2) { $result = 0.0; foreach (func_get_args() as $value) { if (0.0 > $value) { $value -= 1.0 + 0xffffffff; } $result += $value; } if (0xffffffff < $result || -0xffffffff > $result) { $result = fmod($result, 0xffffffff + 1); } if (0x7fffffff < $result) { $result -= 0xffffffff + 1.0; } elseif (-0x80000000 > $result) { $result += 0xffffffff + 1.0; } return $result; } } ?> 使用方法参考如下: // 加密过程 view sourceprint? $text_file = S_ROOT . './456.php'; $str = @file_get_contents($text_file); require_once S_ROOT . "./text_auth.php"; $text_auth = new text_auth(64); $str = $text_auth->encrypt($str, "qianyunlai.com"); $filename = S_ROOT . './789.php'; // 加密后的文本为二进制,普通的文本编辑器无法正常查看 file_put_contents($filename, $str); // 解密过程 view sourceprint ?01 $text_file = S_ROOT . './789.php'; $str = @file_get_contents($text_file); require_once S_ROOT . "./text_auth.php"; $text_auth = new text_auth(64); $str = $text_auth->decrypt($str, "qianyunlai.com"); $filename = S_ROOT . './456.php'; file_put_contents($filename, $str);
Verwandte Empfehlungen:
Wie implementiert man die Quellcodeverschlüsselung in PHP
Das obige ist der detaillierte Inhalt vonZusammenfassung der PHP-Methoden zum Verschlüsseln von Quellcode. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



PHP 8.4 bringt mehrere neue Funktionen, Sicherheitsverbesserungen und Leistungsverbesserungen mit einer beträchtlichen Menge an veralteten und entfernten Funktionen. In dieser Anleitung wird erklärt, wie Sie PHP 8.4 installieren oder auf PHP 8.4 auf Ubuntu, Debian oder deren Derivaten aktualisieren. Obwohl es möglich ist, PHP aus dem Quellcode zu kompilieren, ist die Installation aus einem APT-Repository wie unten erläutert oft schneller und sicherer, da diese Repositorys in Zukunft die neuesten Fehlerbehebungen und Sicherheitsupdates bereitstellen.

Visual Studio Code, auch bekannt als VS Code, ist ein kostenloser Quellcode-Editor – oder eine integrierte Entwicklungsumgebung (IDE) –, die für alle gängigen Betriebssysteme verfügbar ist. Mit einer großen Sammlung von Erweiterungen für viele Programmiersprachen kann VS Code c

Wenn Sie ein erfahrener PHP-Entwickler sind, haben Sie möglicherweise das Gefühl, dass Sie dort waren und dies bereits getan haben. Sie haben eine beträchtliche Anzahl von Anwendungen entwickelt, Millionen von Codezeilen debuggt und eine Reihe von Skripten optimiert, um op zu erreichen

Dieses Tutorial zeigt, wie XML -Dokumente mit PHP effizient verarbeitet werden. XML (Extensible Markup-Sprache) ist eine vielseitige textbasierte Markup-Sprache, die sowohl für die Lesbarkeit des Menschen als auch für die Analyse von Maschinen entwickelt wurde. Es wird üblicherweise für die Datenspeicherung ein verwendet und wird häufig verwendet

JWT ist ein offener Standard, der auf JSON basiert und zur sicheren Übertragung von Informationen zwischen Parteien verwendet wird, hauptsächlich für die Identitätsauthentifizierung und den Informationsaustausch. 1. JWT besteht aus drei Teilen: Header, Nutzlast und Signatur. 2. Das Arbeitsprinzip von JWT enthält drei Schritte: Generierung von JWT, Überprüfung von JWT und Parsingnayload. 3. Bei Verwendung von JWT zur Authentifizierung in PHP kann JWT generiert und überprüft werden, und die Funktionen und Berechtigungsinformationen der Benutzer können in die erweiterte Verwendung aufgenommen werden. 4. Häufige Fehler sind Signaturüberprüfungsfehler, Token -Ablauf und übergroße Nutzlast. Zu Debugging -Fähigkeiten gehört die Verwendung von Debugging -Tools und Protokollierung. 5. Leistungsoptimierung und Best Practices umfassen die Verwendung geeigneter Signaturalgorithmen, das Einstellen von Gültigkeitsperioden angemessen.

Eine Zeichenfolge ist eine Folge von Zeichen, einschließlich Buchstaben, Zahlen und Symbolen. In diesem Tutorial wird lernen, wie Sie die Anzahl der Vokale in einer bestimmten Zeichenfolge in PHP unter Verwendung verschiedener Methoden berechnen. Die Vokale auf Englisch sind a, e, i, o, u und sie können Großbuchstaben oder Kleinbuchstaben sein. Was ist ein Vokal? Vokale sind alphabetische Zeichen, die eine spezifische Aussprache darstellen. Es gibt fünf Vokale in Englisch, einschließlich Großbuchstaben und Kleinbuchstaben: a, e, ich, o, u Beispiel 1 Eingabe: String = "TutorialPoint" Ausgabe: 6 erklären Die Vokale in der String "TutorialPoint" sind u, o, i, a, o, ich. Insgesamt gibt es 6 Yuan

Statische Bindung (statisch: :) implementiert die späte statische Bindung (LSB) in PHP, sodass das Aufrufen von Klassen in statischen Kontexten anstatt Klassen zu definieren. 1) Der Analyseprozess wird zur Laufzeit durchgeführt.

Was sind die magischen Methoden von PHP? Zu den magischen Methoden von PHP gehören: 1. \ _ \ _ Konstrukt, verwendet, um Objekte zu initialisieren; 2. \ _ \ _ Destruct, verwendet zur Reinigung von Ressourcen; 3. \ _ \ _ Call, behandeln Sie nicht existierende Methodenaufrufe; 4. \ _ \ _ GET, Implementieren Sie den dynamischen Attributzugriff; 5. \ _ \ _ Setzen Sie dynamische Attributeinstellungen. Diese Methoden werden in bestimmten Situationen automatisch aufgerufen, wodurch die Code -Flexibilität und -Effizienz verbessert werden.
