Tôi cần hai hàm/phương thức, một hàm để mã hóa, một để giải mã. Đây không phải để lưu trữ mật khẩu. Mỗi người dùng sẽ có một khóa/muối cụ thể để mã hóa dữ liệu.Cách tạo phương thức mã hóa/giải mã hai chiều bằng cách sử dụng khóa cụ thể sử dụng - PHP?
Đây là cách tôi muốn nó hoạt động:
function encode($str, $key) {
// something fancy
}
function decode($str, $key) {
// something fancy
}
$key = $logged_in_user->get_key();
$plain = 'abc abc 123 123';
$encoded_data = encode($plain, $key);
// some_fancy_encrypted_data_that_is_really_cooooool
$decoded_data = decode($encoded_data, $key);
// abc abc 123 123
Một điều nữa là mỗi khi tôi sử dụng chức năng này nó cần phải trả lại điều tương tự mỗi khi tôi sử dụng encode
chức năng với phím cùng một người dùng .
Tôi làm như thế nào?
Vì vậy, bạn đã xem mcrypt (http://www.php.net/manual/en/mcrypt.examples.php) chưa? Và thả thẻ 'hash', bởi vì bạn nói bạn __don't__ muốn có một băm –
Tôi có một [lớp nhỏ] (http://stackoverflow.com/questions/15034368/cannot-decrypt-openssl-encrypt-output-on -nguyên tuyến) có thể làm những gì bạn cần, nhưng câu hỏi thực sự là lý do tại sao bạn cảm thấy cần phải mã hóa riêng từng dữ liệu của người dùng một cách độc lập. Nó thường được giả định rằng một khi một cuộc tấn công có thể nhìn thấy dữ liệu được lưu trữ của bạn, họ cũng có thể thấy mã nguồn của bạn làm mất hiệu lực sử dụng hầu hết các mã hóa nội bộ, cũng như có ý định như họ có thể. – Sammitch
@Sammitch Trong một số trường hợp, nó hữu ích nếu khóa được sử dụng để mã hóa/giải mã dữ liệu không thể tìm thấy ở bất cứ đâu (và chỉ thuộc về người dùng). Tôi khá chắc chắn rằng LastPass làm điều này là tốt. – h2ooooooo