MCRYPT_RIJNDAEL_192 MCRYPT_RIJNDAEL_256 MCRYPT_MODE_CBC
Hai hàm chuyển đổi giữa dữ liệu nhị phân và base64:
Base64_encode($data) Base64_decode($data)
Thư viện mcrypt
Ví dụ
Bài 4 - Bảo mật cho website 39
<?php
$credit_card_no = '41111111111'; //Khai báo các biến
$cipher = MCRYPT_RIJDAEL_128; $mode = MCRYPT_MODE_CBC;
$key = sha1('secretKey', true);
$ivs = mcrypt_get_iv_size($cipher, $mode); $iv = mcrypt_create_iv($ivs);
//Mã hóa dữ liệu
$data = mcrypt_encrypt($cipher, $key, $credit_card_no, $mode, $iv);
$data = base64_encode($data);
echo 'Encrypted data: '.$data.'<br/>';
//Giải mã dữ liệu
$data = base64_decode($data);
$credit_card_no = mcrypt_decrypt($cipher, $key, $credit_card_no, $mode, $iv);
echo 'Decrypted data: '.$credit_card_no.'<br/>';
Lớp Crypt
Bài 4 - Bảo mật cho website 40
class Crypt { private $key; private $ivs; private $iv; private $cipher; private $mode;
public function __construct() {
$this->cipher = MCRYPT_RIJDAEL_128;
$this->mode = MCRYPT_MODE_CBC;
$this->key = sha1('secretKey', true);
$this->ivs = mcrypt_get_iv_size($this-
>cipher, $this->mode);
$this->iv = mcrypt_create_iv($this->ivs);
Lớp Crypt
Bài 4 - Bảo mật cho website 41
public function encrypt($data) {
$data = mcrypt_encrypt($this->cipher, $this-
>key, $data, $this->mode, $this->iv);
$data = base64_encode($data);
return $data;
}
public function decrypt($data) {
$data = base64_decode($data);
$data = mcrypt_decrypt($this->cipher, $this-
>key, $data, $this->mode, $this->iv);
return $data;
}} }
Sử dụng lớp Crypt
Bài 4 - Bảo mật cho website 42
require 'crypt.php';
$credit_card_no = '4111111111111111111';
//Tạo đối tượng Crypt
$crypt = new Crypt();
//Sử dụng đối tượng Crypt để mã hóa dữ liệu
$data = $crypt->encrypt($credit_card_no);
echo 'Encrypted data: ' . $data . '<br />';
//Sử dụng đối tượng Crypt để giải mã dữ liệu
$credit_card_no = $crypt->decrypt($data);
Kết nối bảo mật sử dụng giao thức TLS và SSL Khi trình duyệt gửi yêu cầu tới máy chủ qua kết nối bảo mật thì máy chủ tự xác thực bằng chứng nhận bảo mật điện tử (digital secure certificate)
Bài 4 - Bảo mật cho website 43
Quy trình sử dụng SSL trong ứng dụng web:
Người dùng gửi yêu cầu mua chứng nhận bảo mật điện tử tới CA
CA xác thực thông tin yêu cầu quá RA
CA gửi cho người dùng chứng nhận bảo mật điện tử Người dùng gửi cho người quản trị hosting để cài lên máy chủ
Mã hóa dữ liệu bằng hàm sha1
PHP cung cấp thư viện mcrypt hỗ trợ mã hóa và giải mã dữ liệu
Tổng kết bài học