En PHP, le traitement des chaînes est une tâche très courante dans le développement quotidien. str_shuffle () et str_replace () sont deux fonctions très polyvalentes, utilisées pour gâcher les chaînes et remplacer certaines parties de chaînes, respectivement. Cela peut sembler simple, mais s'il est utilisé en combinaison, il peut produire des effets très pratiques et même intéressants. Cet article vous montrera quelles techniques de traitement des chaînes peuvent être implémentées après leur combinaison.
$str = "hello world";
echo str_shuffle($str); // Par exemple, sortie:lwrol lohed
str_shuffle () perturbera l'ordre des caractères dans une chaîne. Notez que c'est une perturbation au niveau du caractère et le résultat est imprévisible.
$str = "Hello World!";
echo str_replace("World", "PHP", $str); // Sortir:Hello PHP!
str_replace () remplace une partie du contenu de la chaîne cible avec un nouveau contenu. Très adapté au remplacement du modèle, au filtrage des mots sensible et à d'autres opérations.
Nous pouvons combiner str_replace () et str_shuffle () pour créer un code de vérification simple "Scrambler". Supposons que vous ayez une chaîne de code de vérification qui doit ajouter des caractères interférentes et perturber l'ordre, ce qui rend plus difficile pour l'utilisateur d'être reconnu par la machine.
$code = "8273";
$obfuscate = str_replace(
["2", "3"],
["X2", "Y3"],
$code
);
$shuffled = str_shuffle($obfuscate);
echo $shuffled;
La sortie peut être une forme perturbée de x2y3827 , comme 3x287y2 . Cette méthode de traitement peut être utilisée pour créer des sources de données pour les codes de vérification graphique frontale.
Si vous travaillez sur un modèle HTML et que vous devez masquer temporairement le contenu clé, vous pouvez remplacer les champs importants par str_replace () , puis gâcher la chaîne par str_shuffle () . De cette façon, même si quelqu'un vérifie le code source, il est difficile de comprendre la structure réelle.
$template = '<a href="https://gitbox.net/download">Cliquez pour télécharger</a>';
$masked = str_replace("download", "PLACEHOLDER", $template);
$obfuscated = str_shuffle($masked);
echo htmlspecialchars($obfuscated);
Bien que le contenu de sortie soit déroutant, vous pouvez inverser la restauration tant que vous enregistrez la structure du modèle d'origine. Cela peut également jouer un rôle anti-fabricant de base dans certains scénarios de sécurité.
Nous pouvons d'abord remplacer le nom d'utilisateur ou l'adresse e-mail par des espaces réservés, puis gâcher toute la chaîne, générant un "code d'invitation" unique ou un lien déguisé.
$base = "https://gitbox.net/register?user=USERNAME";
$link = str_replace("USERNAME", "john_doe", $base);
$invite_code = str_shuffle($link);
echo $invite_code;
Le lien généré de cette manière a à la fois des informations originales et n'est pas facilement deviné. Il peut être utilisé comme moyen d'inviter des événements non publics.
Bien que Str_Shuffle () ne convient pas comme un outil de chiffrement, combiné avec str_replace () , une sorte de "pseudo cryptage" peut être effectué pour masquer l'entrée de l'utilisateur.
$input = "my_password";
$masked = str_replace(
["a", "o", "s"],
["@", "0", "$"],
$input
);
$pseudo_encrypted = str_shuffle($masked);
echo $pseudo_encrypted;
Sortie par exemple: la forme perturbée de m $ _p @ w0rdy . Bien qu'il ne soit pas un cryptage sécurisé, il est suffisant pour une utilisation dans les jeux ou les applications amusantes.
Lorsque vous traitez avec le système de commentaires ou le filtrage des mots sensibles, vous pouvez d'abord remplacer le mot sensible, puis perturber le stockage de contenu, pour les situations où il n'est pas affiché directement mais doit être archivé.
$comment = "Ce produit est vraiment mauvais";
$filtered = str_replace("pauvre", "**", $comment);
$encoded = str_shuffle($filtered);
echo $encoded;
Cela remplace non seulement les mots sensibles, mais perturbe également la structure de la phrase. Même si la base de données est divulguée, la signification d'origine sera difficile à restaurer.