简单加密:PHP中需要的解密算法

时间:2014-08-28 17:49:27

标签: php cryptography


我在网页上工作,我有一些这样的文字:
AA,BB,CC,A1,B2,C3
我想要一些代码将单词(如AA)替换为保存在变量中的字符串,例如这是我的php变量:

<?php
    $var1 = "A"; //For AA
    $var2 = "B"; //For BB 
    $var3 = "C"; //For CC
    $var4 = "1"; //For A1
    $var5 = "2"; //For B2
    $var6 = "3"; //For C3
?>

文字AA,BB,CC,A1,B2,B3将是这样的:
ABC123
我怎么能用PHP做到这一点?

总之,我需要一个解密算法,将AA,BB,CC,A1,B2,C3的密文文本转换为ABC123的计划文本。

4 个答案:

答案 0 :(得分:3)

此处提供了带有示例加密目录的完整工作脚本。

<?php
$encript = array(
'a'=>'GG', 
'b'=>'HH',  
'c'=>'II',

'A'=>'DD',  
'B'=>'EE',
'B'=>'FF',

'1'=>'AA', 
'2'=>'BB',
'3'=>'CC');


function decrypt($str,$encript)
{
    $decript = array_flip($encript);
    $str_arr = explode(",",$str);
    $dec = "";
    foreach($str_arr as $val)
    {
        $dec .= $decript[strtoupper(trim($val))];
    }
    return $dec;
}

function encrypt($str,$encript)
{ 
    $str_arr = str_split($str);
    $dec = "";
    foreach($str_arr as $val)
    {
        $dec .= $encript[trim($val)].",";
    }
    return $dec;
}


$cypher = "AA,BB,DD,CC,EE,FF,GG,HH";
$text = "Ab1Ca";

echo decrypt($cypher,$encript);
echo "<br/>";
echo encrypt($text,$encript);
?>
  • 首先,我们必须将每个字符的映射创建为关联数组。
  • 首先在解密函数中我们必须翻转数组。
  • 然后必须遍历每个编码字符串并从翻转数组构建真实文本。
  • 在加密中将字符串拆分为单字母数组。
  • 遍历数组并使用映射数组构建加密。

以下网址提供的工作:http://sugunan.net/demo/str1.php

答案 1 :(得分:2)

假设文本存储在$string中,请尝试以下操作:

$vars = array(
    'AA' => 'A',
    'BB' => 'B',
    'CC' => 'C',
    'A1' => '1',
    'B2' => '2',
    'C3' => '3',
);

$string = str_replace(array_keys($vars), array_values($vars), $string);

还注意到PHP str_replace上的文档警告:

  

替换订单问题

     

由于 str_replace() 从左到右替换,因此可能会替换为   多次替换时先前插入的值。也可以看看   the examples in this document

答案 2 :(得分:0)

试试这个

$str = 'AA,BB,CC,A1,B2,C3';
$arr = explode(',', $str);
$newStr = '';
foreach($arr as $val){
    $newStr .= substr($val,1,1);
}
echo $newStr;

<强>输出

ABC123

答案 3 :(得分:0)

如果您不想更改字符串,请尝试使用

$count = 0;
while(true){
    $var = "var".++$count;
    if($$var){
        $$var = ${$var}[1];
    }
    else break;
}