給定的輸入字符串(實際上是一個整數值)和加密密鑰,我需要輸入字符串以這樣的方式加密生成的字符串是:安全加密/解密功能
- 網址安全(我允許的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