Güvenli Şifreleme / azalmak İşlevleri

0 Cevap php

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:

  1. URL güvenli (izin verilen URI karakterler şu anda: 0-9 az ~%:. _-)
  2. Upload güvenli (yani, sadece geçerli bir dizin / dosya adı karakterleri kullanır)
  3. FTP hesabı kullanıcı adı güvenli
  4. 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);
}

0 Cevap