Maison > développement back-end > PHP7 > le corps du texte

Comment utiliser le cryptage et le déchiffrement 'DES-EDE-CBC' en PHP7

醉折花枝作酒筹
Libérer: 2023-02-17 22:08:02
avant
2312 Les gens l'ont consulté

Cet article vous présentera la méthode de cryptage et de déchiffrement utilisant "DES-EDE-CBC" en PHP7. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère qu'il sera utile à tout le monde.

Comment utiliser le cryptage et le déchiffrement 'DES-EDE-CBC' en PHP7

1. Contraintes conditionnelles

La bibliothèque mcrypt couramment utilisée dans PHP5 a été supprimée sur PHP7.1+, nous utilisons donc openssl pour traiter les données. cryptage et décryptage.

La méthode de cryptage adopte la méthode DES-EDE-CBC.

La méthode de remplissage de clé est la suivante : utilisez une clé de 24 bits, effectuez d'abord une vérification MD5 sur la clé pour obtenir une chaîne de 16 bits, puis prenez les 8 premiers chiffres de la valeur de vérification MD5 de la clé et ajoutez-la à la valeur précédente derrière. Une clé de 24 bits est assemblée à partir de cela.

2. Partage de code

<?php

class DesEdeCbc {

private $cipher, $key, $iv;

/**
 * DesEdeCbc constructor.
 * @param $cipher
 * @param $key
 * @param $iv
 */
public function __construct($cipher, $key, $iv) {
$this->cipher = $cipher;
$this->key= $this->getFormatKey($key);
$this->iv = $iv;
}

/**
 * @func  加密
 * @param $msg
 * @return string
 */
public function encrypt($msg) {
$des = @openssl_encrypt($msg, $this->cipher, $this->key, OPENSSL_RAW_DATA, $this->iv);
return base64_encode($des);
}

/**
 * @func  解密
 * @param $msg
 * @return string
 */
public function decrypt($msg) {
return @openssl_decrypt(base64_decode($msg), $this->cipher, $this->key, OPENSSL_RAW_DATA, $this->iv);

}


/**
 * @func  生成24位长度的key
 * @param $skey
 * @return bool|string
 */
private function getFormatKey($skey) {
$md5Value= md5($skey);
$md5ValueLen = strlen($md5Value);
$key = $md5Value . substr($md5Value, 0, $md5ValueLen / 2);

return hex2bin($key);
}

}

$cipher = &#39;DES-EDE-CBC&#39;;
$msg = &#39;HelloWorld&#39;;
$key = &#39;12345678&#39;;
$iv  = "\x00\x00\x00\x00\x00\x00\x00\x00";

$des = new DesEdeCbc($cipher, $key, $iv);

// 加密
$msg = $des->encrypt($msg);
echo &#39;加密后: &#39; . $msg . PHP_EOL;

// 解密
$src = $des->decrypt($msg);
echo &#39;解密后: &#39; . $src . PHP_EOL;
Copier après la connexion

3. Une petite explication

Vous pouvez ajuster la méthode de cryptage, la méthode de remplissage de clé et le vecteur iv en fonction de la situation réelle pour répondre à différents besoins.

Apprentissage recommandé : Tutoriel vidéo php

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:csdn.net
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal