Ben belirtilen anahtar kullanarak php dizelerini şifrelemek ve şifresini çözmek için bazı işlevler için arıyorum.
Teşekkürler!
Bu başlayın: http://www.ibm.com/developerworks/opensource/library/os-php-encrypt/
Bundan sonra, http://stackoverflow.com/questions/1788150/how-to-encrypt-string-in-php Pascal Martin'in cevabı bakabilirsiniz
denedim mcrypt?
Kullanmış olduğunuz temel openssl uygulaması öncesi:
class MyEncryption
{
public $pubkey = '...public key here...';
public $privkey = '...private key here...';
public function encrypt($data)
{
if (openssl_public_encrypt($data, $encrypted, $this->pubkey))
$data = base64_encode($encrypted);
else
throw new Exception('Unable to encrypt data. Perhaps it is bigger than the key size?');
return $data;
}
public function decrypt($data)
{
if (openssl_private_decrypt(base64_decode($data), $decrypted, $this->privkey))
$data = $decrypted;
else
$data = '';
return $data;
}
}
Sen RSA anahtar çifti oluşturmak gerekir. See here for information bunu nasıl. Dosyasının kendisinde özel anahtarını saklamak kötü bir fikirdir. Bu sadece bir örnektir. İdeal şifre çözme anda özel anahtarı temin etmek kullanıcıyı isterim
Ben simetrik anahtar şifreleme kastetti. mcrypt (AES, Tripel DES gibi) çeşitli algoritmalar desteklemiyor. Orada bir catch, olsa geri orijinal uzunluğunu almak mümkün olmaz bu yüzden herhangi bir dolgu algoritması desteklemez. Bu soruna almak için 2 seçeneğiniz var,
Sizin açık-metin önünde bir uzunluk alan ekleyin. Say uzunluğu gibi ilk 4 bayt kullanır.
PKCS 5. kendinizi doldurma etmeyin. Bu sayfada kod örnekleri vardır: http://www.php.net/manual/en/function.mcrypt-encrypt.php