С учетом входной строки (на самом деле будет целое значение) и ключ шифрования, мне нужно, чтобы зашифровать строку ввода таким образом, что результирующая строка:Safe шифрования/дешифрования функции
- URL безопасно (мои разрешенные символы URI в настоящее время: AZ 0-9 ~.%: _-)
- файла сейф (значение, он использует только допустимые символы каталог/имя файла)
- FTP имя пользователя учетной записи в безопасности
- учетной записи электронной почты имя пользователя безопасно
Затем, учитывая зашифрованную строку и тот же ключ шифрования, расшифруйте строку в ее незашифрованную форму.
Это не предназначено для обеспечения безопасности. Реализация должна быть в PHP. Благодарю.
EDIT 1 (декодирование по-прежнему включает в себя нежелательные символы, плюс, не существует никакого способа, чтобы убедиться, что в результате зашифрованная строка находится в пределах определенной длины):
function decrypt($string, $encryption_key)
{
assert(isset($string) === TRUE);
assert(isset($encryption_key) === TRUE);
$result = '';
$string = base64_decode($string);
for ($i = 0; $i < strlen($string); $i++)
{
$char = substr($string, $i, 1);
$keychar = substr($encryption_key, ($i % strlen($encryption_key)) - 1, 1);
$char = chr(ord($char) - ord($keychar));
$result .= $char;
}
return $result;
}
function encrypt($string, $encryption_key)
{
assert(isset($string) === TRUE);
assert(isset($encryption_key) === TRUE);
$string = (string) $string;
$result = '';
for ($i = 0; $i < strlen($string); $i++)
{
$char = substr($string, $i, 1);
$keychar = substr($encryption_key, ($i % strlen($encryption_key)) - 1, 1);
$char = chr(ord($char) + ord($keychar));
$result .= $char;
}
return base64_encode($result);
}
С чем вы боретесь? Или это более сложный «дать код»? – Artefacto
Ищете кого-то, у кого уже есть такая функция. Надеюсь, я не первый человек в мире, у которого есть такое требование. Если у вас есть такая функция (или даже что-то близкое к ней), и если вы не возражаете против совместного использования, то я бы хотел ее увидеть. – StackOverflowNewbie
@Stack Итак, это не вопрос программирования, это задача [поиск информации] (http://en.wikipedia.org/wiki/Information_retrieval). Тогда голосование закрывается. – Artefacto