Bir giriş dizesi (aslında bir tamsayı değeri olacaktır) ve bir şifreleme anahtarı önüne alındığında, ben sonuç dizesi olduğunu, böyle bir şekilde giriş dizesini şifrelemek gerekir:
- URL güvenli (izin verilen URI karakterler şu anda: 0-9 az ~%:. _-)
- Upload güvenli (yani, sadece geçerli bir dizin / dosya adı karakterleri kullanır)
- FTP hesabı kullanıcı adı güvenli
- E-posta hesabı adı güvenli
Ardından, şifreli dize ve aynı şifreleme anahtarı verildi, onun şifresiz forma şifresini dize.
Bu, bir güvenlik önlemi olarak tasarlanmamıştır. Uygulama PHP olması gerekir. Teşekkürler.
EDIT 1 (kod çözme hala istenmeyen karakterleri içerir, artı, emin çıkan şifreli dize belirli bir uzunlukta içinde yapmak için hiçbir yolu yoktur):
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);
}