MCRYPT_RIJNDAEL_128 MCRYPT_RIJNDAEL

Một phần của tài liệu bài 4 bảo mật cho website (Trang 38 - 44)

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

Một phần của tài liệu bài 4 bảo mật cho website (Trang 38 - 44)