我正在尝试使用CAESAR&C; CIPHER加密邮件,加密也能正常工作。但现在我想知道如何考虑要加密的字符串中的空格和数字。
PHP
<?php
//the text to be encrypted
$plain_text='ABC';
echo $plain_text."<br>";
//letters of alphabet array
$alphabet=array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O',
'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z');
//positions of the letters in alphabet
$flip=array_flip($alphabet);
//plaintext array
$plain_text=str_split($plain_text);
$n=count($plain_text);
$encrypted_text='';
for ($i=0; $i<$n; $i++){
//encryption
$encrypted_text.=$alphabet[($flip[$plain_text[$i]]+2)%26];
}
echo $encrypted_text;
?>
答案 0 :(得分:0)
喜欢这个
<?php
//the text to be encrypted
$plain_text='ABC';
echo $plain_text."<br>";
//letters of alphabet array
$alphabet=array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O',
'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '1','2','3','4','5','6','7','8','9','0',' ');
//positions of the letters in alphabet
$flip=array_flip($alphabet);
$mod = count( $alphabet );
//plaintext array
$plain_text=str_split($plain_text);
$n=count($plain_text);
$encrypted_text='';
for ($i=0; $i<$n; $i++){
$n = strtoupper( $n );
//encryption
$encrypted_text.=$alphabet[($flip[$plain_text[$i]]+2) % $mod];
}
echo $encrypted_text;
?>
将它们添加到您的列表中并根据计数生成$ mod动态,我添加了strtoupper来计算小写字母。
那就是说,这不是你的功课吗?你可以把任何你喜欢的东西放在那里,只要它不重复,如果你想错误检查重复,那么只需
$alphabet = array_unique($alphabet);
为了确保你永远不会在数组中放置副本,但这可能有点过分。