给定的输入字符串(实际上是一个整数值)和加密密钥,我需要输入字符串以这样的方式加密生成的字符串是:安全加密/解密功能
- 网址安全(我允许的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 2010-08-22 22:53:59
正在寻找已经拥有此功能的人。希望我不是世界上第一个有这样要求的人。如果你有这样的功能(或者甚至有一些功能),如果你不介意分享,那么我很乐意看到它。 – StackOverflowNewbie 2010-08-22 22:58:28
@Stack所以这实际上不是一个编程问题,它是[信息检索](http://en.wikipedia.org/wiki/Information_retrieval)任务。然后投票结束。 – Artefacto 2010-08-22 23:00:30