Tôi đang tìm một số chức năng để mã hóa và giải mã các chuỗi trong php bằng cách sử dụng khóa được chỉ định.Mã hóa và giải mã chuỗi với khóa PHP
Cảm ơn!
Tôi đang tìm một số chức năng để mã hóa và giải mã các chuỗi trong php bằng cách sử dụng khóa được chỉ định.Mã hóa và giải mã chuỗi với khóa PHP
Cảm ơn!
Bắt đầu với điều này: http://www.ibm.com/developerworks/opensource/library/os-php-encrypt/
Sau đó, có một cái nhìn tại câu trả lời Pascal MARTIN trong How do I encrypt a string in PHP?
Một openssl thực hiện cơ bản tôi đã sử dụng trước đó:
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;
}
}
Bạn sẽ cần phải tạo cặp khóa RSA. See here for information về cách thực hiện điều đó. Việc lưu trữ khóa cá nhân trong chính tệp đó là một ý tưởng tồi. Đây chỉ là một ví dụ. Lý tưởng nhất là bạn sẽ muốn người dùng cung cấp khóa riêng tại thời gian giải mã
Tôi cho rằng bạn có nghĩa là mã hóa khóa đối xứng. mcrypt không hỗ trợ một số thuật toán (Giống như AES, Tripel DES). Có một bắt mặc dù, nó không hỗ trợ bất kỳ thuật toán đệm để bạn sẽ không thể có được chiều dài ban đầu trở lại. Bạn có 2 tùy chọn để giải quyết vấn đề này,
Thêm trường độ dài trước chữ rõ ràng của bạn. Nói sử dụng 4 byte đầu tiên theo chiều dài.
Tự PKCS # 5 tự đệm. Có các ví dụ về mã trên trang này: http://www.php.net/manual/en/function.mcrypt-encrypt.php
Bạn có một phong cách mã hóa cụ thể nào không? – EAMann
Câu hỏi này quá chung chung. Tìm kiếm stackoverflow hoặc google để có được một nền tảng về chủ đề PHP/Encryption. – labratmatt