Heim Backend-Entwicklung PHP-Tutorial php中AES加密解密的例子小结_php实例

php中AES加密解密的例子小结_php实例

Jun 07, 2016 pm 05:21 PM
aes 加密 解密

aesDemo.php:

例子,

复制代码 代码如下:

require_once('./AES.php');
//$aes = new AES();
$aes = new AES(true);// 把加密后的字符串按十六进制进行存储
//$aes = new AES(true,true);// 带有调试信息且加密字符串按十六进制存储
$key = "this is a 32 byte key";// 密钥
$keys = $aes->makeKey($key);
$encode = "123456";// 被加密的字符串
$ct = $aes->encryptString($encode, $keys);
echo "encode = ".$ct."
";
$cpt = $aes->decryptString($ct, $keys);
echo "decode = ".$cpt;
?>

例子、AES加密类

复制代码 代码如下:

//php aes加密类
class AESMcrypt {

public $iv = null;
public $key = null;
public $bit = 128;
private $cipher;

public function __construct($bit, $key, $iv, $mode) {
if(empty($bit) || empty($key) || empty($iv) || empty($mode))
return NULL;

$this->bit = $bit;
$this->key = $key;
$this->iv = $iv;
$this->mode = $mode;

switch($this->bit) {
case 192:$this->cipher = MCRYPT_RIJNDAEL_192; break;
case 256:$this->cipher = MCRYPT_RIJNDAEL_256; break;
default: $this->cipher = MCRYPT_RIJNDAEL_128;
}

switch($this->mode) {
case 'ecb':$this->mode = MCRYPT_MODE_ECB; break;
case 'cfb':$this->mode = MCRYPT_MODE_CFB; break;
case 'ofb':$this->mode = MCRYPT_MODE_OFB; break;
case 'nofb':$this->mode = MCRYPT_MODE_NOFB; break;
default: $this->mode = MCRYPT_MODE_CBC;
}
}

public function encrypt($data) {
$data = base64_encode(mcrypt_encrypt( $this->cipher, $this->key, $data, $this->mode, $this->iv));
return $data;
}

public function decrypt($data) {
$data = mcrypt_decrypt( $this->cipher, $this->key, base64_decode($data), $this->mode, $this->iv);
$data = rtrim(rtrim($data), "..");
return $data;
}

}
//使用方法
$aes = new AESMcrypt($bit = 128, $key = 'abcdef1234567890', $iv = '0987654321fedcba', $mode = 'cbc');
$c = $aes->encrypt('haowei.me');
var_dump($aes->decrypt($c));

例子、附一个可加密可解密类

复制代码 代码如下:

/**
 * AES加密、解密类
 * @author hushangming
 *
 * 用法:
 *
<br> * // 实例化类<br> * // 参数$_bit:格式,支持256、192、128,默认为128字节的<br> * // 参数$_type:加密/解密方式,支持cfb、cbc、nofb、ofb、stream、ecb,默认为ecb<br> * // 参数$_key:密钥,默认为abcdefghijuklmno<br> * $tcaes = new TCAES(); <br> * $string = 'laohu';<br> * // 加密<br> * $encodeString = $tcaes->encode($string);<br> * // 解密<br> * $decodeString = $tcaes->decode($encodeString);<br> * 
Nach dem Login kopieren

 */
class TCAES{
 private $_bit = MCRYPT_RIJNDAEL_256;
 private $_type = MCRYPT_MODE_CBC;
 //private $_key = 'abcdefghijuklmno0123456789012345';
 private $_key = 'abcdefghijuklmno'; // 密钥
 private $_use_base64 = true;
 private $_iv_size = null;
 private $_iv = null;

 /**
  * @param string $_key 密钥
  * @param int $_bit 默认使用128字节
  * @param string $_type 加密解密方式
  * @param boolean $_use_base64 默认使用base64二次加密
  */
 public function __construct($_key = '', $_bit = 128, $_type = 'ecb', $_use_base64 = true){
  // 加密字节
  if(192 === $_bit){
   $this->_bit = MCRYPT_RIJNDAEL_192;
  }elseif(128 === $_bit){
   $this->_bit = MCRYPT_RIJNDAEL_128;
  }else{
   $this->_bit = MCRYPT_RIJNDAEL_256;
  }
  // 加密方法
  if('cfb' === $_type){
   $this->_type = MCRYPT_MODE_CFB;
  }elseif('cbc' === $_type){
   $this->_type = MCRYPT_MODE_CBC;
  }elseif('nofb' === $_type){
   $this->_type = MCRYPT_MODE_NOFB;
  }elseif('ofb' === $_type){
   $this->_type = MCRYPT_MODE_OFB;
  }elseif('stream' === $_type){
   $this->_type = MCRYPT_MODE_STREAM;
  }else{
   $this->_type = MCRYPT_MODE_ECB;
  }
  // 密钥
  if(!empty($_key)){
   $this->_key = $_key;
  }
  // 是否使用base64
  $this->_use_base64 = $_use_base64;

  $this->_iv_size = mcrypt_get_iv_size($this->_bit, $this->_type);
  $this->_iv = mcrypt_create_iv($this->_iv_size, MCRYPT_RAND);
 }

 /**
  * 加密
  * @param string $string 待加密字符串
  * @return string
  */
 public function encode($string){
  if(MCRYPT_MODE_ECB === $this->_type){
   $encodeString = mcrypt_encrypt($this->_bit, $this->_key, $string, $this->_type);
  }else{
   $encodeString = mcrypt_encrypt($this->_bit, $this->_key, $string, $this->_type, $this->_iv);
  }
  if($this->_use_base64)
   $encodeString = base64_encode($encodeString);
  return $encodeString;
 }

 /**
  * 解密
  * @param string $string 待解密字符串
  * @return string
  */
 public function decode($string){
  if($this->_use_base64)
   $string = base64_decode($string);

  $string = $this->toHexString($string);
  if(MCRYPT_MODE_ECB === $this->_type){
   $decodeString = mcrypt_decrypt($this->_bit, $this->_key, $string, $this->_type);
  }else{
   $decodeString = mcrypt_decrypt($this->_bit, $this->_key, $string, $this->_type, $this->_iv);
  }
  return $decodeString;
 }

 /**
  * 将$string转换成十六进制
  * @param string $string
  * @return stream
  */
 private function toHexString ($string){
  $buf = "";
  for ($i = 0; $i    $val = dechex(ord($string{$i}));
   if(strlen($val)    $val = "0".$val;
   $buf .= $val;
  }
  return $buf;
 }

 /**
  * 将十六进制流$string转换成字符串
  * @param stream $string
  * @return string
  */
 private function fromHexString($string){
  $buf = "";
  for($i = 0; $i    $val = chr(hexdec(substr($string, $i, 2)));
   $buf .= $val;
  }
  return $buf;
 }
}
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Aufdecken der Ursachen des HTTP-Statuscodes 460 Aufdecken der Ursachen des HTTP-Statuscodes 460 Feb 19, 2024 pm 08:30 PM

Entschlüsselung des HTTP-Statuscodes 460: Warum tritt dieser Fehler auf? Einleitung: Im täglichen Netzwerkgebrauch stoßen wir häufig auf verschiedene Fehlermeldungen, einschließlich HTTP-Statuscodes. Diese Statuscodes sind ein vom HTTP-Protokoll definierter Mechanismus, der die Verarbeitung einer Anfrage anzeigt. Unter diesen Statuscodes gibt es einen relativ seltenen Fehlercode, nämlich 460. Dieser Artikel befasst sich mit diesem Fehlercode und erklärt, warum dieser Fehler auftritt. Definition des HTTP-Statuscodes 460: Zunächst müssen wir die Grundlagen des HTTP-Statuscodes verstehen

So richten Sie die Verschlüsselung des Fotoalbums auf einem Apple-Mobiltelefon ein So richten Sie die Verschlüsselung des Fotoalbums auf einem Apple-Mobiltelefon ein Mar 02, 2024 pm 05:31 PM

In Apple-Handys können Benutzer Fotoalben nach ihren eigenen Bedürfnissen verschlüsseln. Einige Benutzer wissen nicht, wie sie es einrichten sollen. Sie können dem Memo die zu verschlüsselnden Bilder hinzufügen und das Memo dann sperren. Als nächstes stellt der Herausgeber die Methode zum Einrichten der Verschlüsselung mobiler Fotoalben für Benutzer vor. Schauen Sie sich das an. Apple-Handy-Tutorial So richten Sie die iPhone-Fotoalbum-Verschlüsselung ein A: Nachdem Sie dem Memo die Bilder hinzugefügt haben, die verschlüsselt werden müssen, gehen Sie zum Sperren des Memos, um eine detaillierte Einführung zu erhalten: 1. Öffnen Sie das Fotoalbum und wählen Sie das Bild aus, das verschlüsselt werden soll verschlüsselt, und klicken Sie dann unten auf [Hinzufügen zu]. 2. Wählen Sie [Zu Notizen hinzufügen]. 3. Geben Sie das Memo ein, suchen Sie das gerade erstellte Memo, geben Sie es ein und klicken Sie auf das Symbol [Senden] in der oberen rechten Ecke. 4. Klicken Sie unten auf [Gerät sperren].

So legen Sie ein Passwort für die Ordnerverschlüsselung ohne Komprimierung fest So legen Sie ein Passwort für die Ordnerverschlüsselung ohne Komprimierung fest Feb 20, 2024 pm 03:27 PM

Die Ordnerverschlüsselung ist eine gängige Datenschutzmethode, die den Inhalt eines Ordners verschlüsselt, sodass nur diejenigen auf die Dateien zugreifen können, die über das Entschlüsselungskennwort verfügen. Beim Verschlüsseln eines Ordners gibt es einige gängige Möglichkeiten, ein Passwort festzulegen, ohne die Datei zu komprimieren. Zunächst können wir die Verschlüsselungsfunktion des Betriebssystems nutzen, um ein Ordnerkennwort festzulegen. Für Windows-Benutzer können Sie es einrichten, indem Sie die folgenden Schritte ausführen: Wählen Sie den zu verschlüsselnden Ordner aus, klicken Sie mit der rechten Maustaste auf den Ordner und wählen Sie „Eigenschaften“.

So richten Sie die Wortentschlüsselung ein So richten Sie die Wortentschlüsselung ein Mar 20, 2024 pm 04:36 PM

In der heutigen Arbeitsumgebung wird das Bewusstsein aller für die Vertraulichkeit immer stärker, und bei der Verwendung von Software werden häufig Verschlüsselungsvorgänge durchgeführt, um Dateien zu schützen. Insbesondere bei wichtigen Dokumenten sollte das Bewusstsein für die Vertraulichkeit gestärkt werden und die Sicherheit der Dokumente jederzeit oberste Priorität haben. Ich weiß also nicht, wie gut jeder die Wortentschlüsselung versteht. Heute zeigen wir Ihnen den Prozess der Wortentschlüsselung anhand der folgenden Erklärung. Freunde, die Kenntnisse über die Wortentschlüsselung erlernen müssen, sollten den heutigen Kurs nicht verpassen. Zum Schutz der Datei ist zunächst ein Entschlüsselungsvorgang erforderlich, was bedeutet, dass die Datei als Dokument geschützt ist. Nachdem Sie dies mit einer Datei durchgeführt haben, wird beim erneuten Öffnen der Datei eine Eingabeaufforderung angezeigt. Um die Datei zu entschlüsseln, müssen Sie das Passwort eingeben, sodass Sie dies direkt tun können

Entschlüsselung der vom PyCharm-Interpreter hinzugefügten Tricks Entschlüsselung der vom PyCharm-Interpreter hinzugefügten Tricks Feb 21, 2024 pm 03:33 PM

Entschlüsselung der vom PyCharm-Interpreter hinzugefügten Tricks PyCharm ist die von vielen Python-Entwicklern bevorzugte integrierte Entwicklungsumgebung (IDE) und bietet viele leistungsstarke Funktionen zur Verbesserung der Entwicklungseffizienz. Unter anderem ist die Einstellung des Interpreters ein wichtiger Teil von PyCharm. Die korrekte Einstellung des Interpreters kann Entwicklern helfen, den Code reibungslos auszuführen und das Programm zu debuggen. In diesem Artikel werden einige Techniken zum Entschlüsseln der PyCharm-Interpreter-Ergänzungen vorgestellt und mit spezifischen Codebeispielen kombiniert, um zu zeigen, wie der Interpreter richtig konfiguriert wird. Hinzufügen und Auswählen von Dolmetschern in Py

So verschlüsseln Sie das komprimierte Paket mit der Methode „winrar-winrar-verschlüsseltes komprimiertes Paket'. So verschlüsseln Sie das komprimierte Paket mit der Methode „winrar-winrar-verschlüsseltes komprimiertes Paket'. Mar 23, 2024 pm 12:10 PM

Der Editor stellt Ihnen drei Methoden zur Verschlüsselung und Komprimierung vor: Methode 1: Verschlüsselung Die einfachste Verschlüsselungsmethode besteht darin, beim Verschlüsseln der Datei das Kennwort einzugeben, das Sie festlegen möchten, und die Verschlüsselung und Komprimierung sind abgeschlossen. Methode 2: Automatische Verschlüsselung Bei der gewöhnlichen Verschlüsselungsmethode müssen wir beim Verschlüsseln jeder Datei ein Passwort eingeben. Wenn Sie eine große Anzahl komprimierter Pakete verschlüsseln möchten und die Passwörter gleich sind, können wir in WinRAR die automatische Verschlüsselung festlegen und dann nur „Wann“. Beim normalen Komprimieren von Dateien fügt WinRAR jedem komprimierten Paket ein Passwort hinzu. Die Methode ist wie folgt: Öffnen Sie WinRAR, klicken Sie in der Einstellungsoberfläche auf Optionen-Einstellungen, wechseln Sie zu [Komprimierung], klicken Sie auf Standardkonfiguration erstellen – Kennwort festlegen. Geben Sie hier das Kennwort ein, das wir festlegen möchten, und klicken Sie auf OK, um die Einstellung abzuschließen. Wir benötigen nur korrigieren

Analog, ein neues Projekt von Krypto-Veteranen: 16 Millionen US-Dollar eingesammelt, Airdrop erwartet Analog, ein neues Projekt von Krypto-Veteranen: 16 Millionen US-Dollar eingesammelt, Airdrop erwartet Feb 22, 2024 pm 04:50 PM

Ursprünglicher Autor: Meteor, ChainCatcher Ursprünglicher Herausgeber: Marco, ChainCatcher Vor kurzem ist das Full-Chain-Interoperabilitätsprotokoll Analog mit der Offenlegung von 16 Millionen US-Dollar an Finanzierungen ins Rampenlicht gerückt. Zu den Investmentinstituten gehören TribeCapital, NGCVentures, Wintermute, GSR, NEAR und OrangeDAO und Mike Novogratz‘ alternative Vermögensverwaltungsunternehmen Samara Asset Group, Balaji Srinivasan usw. Ende 2023 sorgte Analog für Aufregung in der Branche und veröffentlichte Informationen zur offenen Testnet-Registrierungsveranstaltung auf der X-Plattform.

Mar 18, 2024 pm 12:25 PM

So entschlüsseln Sie Videos in der EZVIZ Cloud: Es gibt viele Möglichkeiten, Videos in der EZVIZ Cloud zu entschlüsseln, eine davon ist die Verwendung der EZVIZ Cloud Mobile App. Benutzer müssen lediglich die Geräteliste aufrufen, die zu entschlüsselnde Kamera auswählen und die Seite mit den Gerätedetails aufrufen. Suchen Sie auf der Gerätedetailseite die Option „Einstellungen“ und wählen Sie dann „Videoverschlüsselung“, um relevante Einstellungen vorzunehmen. In der Benutzeroberfläche für die Videoverschlüsselungseinstellungen können Sie die Option zum Deaktivieren der Videoverschlüsselung auswählen und die Einstellungen speichern, um den Entschlüsselungsvorgang abzuschließen. Dieser einfache Schritt ermöglicht Benutzern das einfache Entschlüsseln von Videos und verbessert den Bedienkomfort der Kamera. Wenn Sie den Computer-Client von EZVIZ Cloud verwenden, können Sie die Videoverschlüsselung auch durch ähnliche Schritte aufheben. Melden Sie sich einfach an und wählen Sie die entsprechende Kamera aus, rufen Sie die Benutzeroberfläche mit den Gerätedetails auf und suchen Sie dann in den Einstellungen nach Videozusatz.

See all articles