加扰字母php

1 php

我想争夺所有的a-zA-Z这样的世界

你好成为shrxs或bhidf

其余的应该保持不变.例如."你好世界!"="ksgii fishl!"

等等

Pau*_*xon 11

目前尚不清楚这是否可以逆转,所以这里有两个备选答案.

"你好"成为"shrxs"意味着一种超越简单替代(凯撒密码)的方案,或许像聚合字母密码.

但是对于一个简单的凯撒密码,你可以使用strtr

$plain="hello";
$cipher = strtr($plain, 
    "abcdefghijklmnopqrstuvwxyz", 
    "tuvhijkcwxyzldefgsmnopqrab");
echo $cipher;
Run Code Online (Sandbox Code Playgroud)

会显示"cizze";

如果你不需要扭转加扰,并想要一些真正随机的东西,试试这个

function random_char($matches)
{
   return chr(rand(ord('a'),ord('z')));
}

$plain="hello";

$random=preg_replace_callback(
           "{[a-z]}i",
           "random_char",
           $plain);

echo $random;
Run Code Online (Sandbox Code Playgroud)

这里我们使用preg_replace_callback让random_char回调用随机替代替换每个char.


Dav*_*ant 5

您可能还想查看str_rot13函数,它具有可逆性的优点.

<?php
  var $foo = "hello world!";
  var $bar = str_rot13($foo); // $bar equals "uryyb jbeyq!"
  var $baz = str_rot13($bar); // $baz equals "hello world!"
?>
Run Code Online (Sandbox Code Playgroud)