1. Trang chủ
  2. » Công Nghệ Thông Tin

PHÁT TRIỂN ỨNG DỤNG WEB : MÃ HÓA VÀ GIẢI MÃ TRANG PHP

12 1,4K 11

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 12
Dung lượng 391,97 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

2.1 Khái niệm về mã hóa (encode) Trong mật mã học, một ngành toán học ứng dụng cho công nghệ thông tin, mã hóa là phương pháp để biến thông tin (phim ảnh, văn bản, hình ảnh...) từ định dạng bình thường sang dạng thông tin không thể hiểu được nếu không có phương tiện giải mã. Từ thời xa xưa, mã hóa được sử dụng nhiều trong các thư từ, điện tín, đặc biệt được ưa chuộng khi có chiến tranh xảy ra, đóng góp quan trọng vào việc đảm bảo an toàn thông tin. Ngày nay, thời đại mà internet phát triển một cách nhanh chóng, khi mà nhà nhà người người đều sử dụng internet và chia sẻ những thông tin cá nhân của mình trên đó. Việc bảo mật những thông tin này là thực sự cần thiết, và một trong những cách để bảo mật thông tin hữu hiệu nhất hiện nay là mã hóa. 2.2 Khái niệm về giải mã (decode) Giải mã là phương pháp để đưa từ dạng thông tin đã được mã hóa về dạng thông tin ban đầu, quá trình ngược của mã hóa.

Trang 1

PHÁT TRIỂN ỨNG DỤNG WEB

TÊN ĐỀ TÀI : MÃ HÓA VÀ GIẢI MÃ TRANG PHP

MỤC LỤC

Trang 2

I. SƠ LƯỢC VỀ PHP VÀ MÃ HÓA TRONG PHP

1. Sơ lược về PHP

PHP được xem là ngôn ngữ kịch bản phía máy chủ phổ biến nhất trên thế giới, nó đã phát triển rất nhiều kể từ khi các đoạn code inline đầu tiên xuất hiện trong các tập tin HTML tĩnh.

PHP khởi đầu như là một dự án mã nguồn mở nhỏ, nhưng theo đà phát triển, ngày càng nhiều người thấy rằng nó càng ngày càng hữu ích PHP được phát triển từ một sản phẩm có tên là PHP/FI PHP/FI do Rasmus Lerdorf tạo ra năm

1994, ban đầu được xem như là một tập con đơn giản của các mã kịch bản Perl để theo dõi tình hình truy cập đến bản sơ yếu lý lịch của ông trên mạng Ông đã đặt tên cho bộ mã kịch bản này là “Personal Home Page Tools” Khi cần đến các chức năng rộng hơn, Rasmus đã viết ra một bộ thực thi bằng C lớn hơn để có thể truy vấn tới Database và giúp cho người sử dụng phát triển các ứng dụng web đơn giản Rasmus đã quyết định công bố mã nguồn của PHP/FI cho mọi người xem, sử dụng cũng như sửa các lỗi có trong nó, đồng thời cải tiến mã nguồn.

PHP viết hồi qui của “PHP: Hypertext Preprocessor”.

PHP là ngôn ngữ lập trình kịch bản viết cho máy chủ mà được nhúng trong HTML Nó được sử dụng để quản lý nội dụng động, Database, Session tracking, …

Nó được tích hợp với một số Database thông dụng như MySQL, PostgreSQL, Oracle, Sybase, Informix, và Microsoft SQL Server.

PHP thực thi rất tuyệt vời, đặc biệt khi được biên dịch như là một Apache Module trên Unix side MySQL Server, khi được khởi động, thực thi các truy vấn phức tạp với các tập hợp kết quả khổng lồ trong thời gian Record-setting.

PHP hỗ trợ một số lượng rộng rãi các giao thức lớn như POP3, IMAP,

và LDAP PHP4 bổ sung sự hỗ trợ cho Java và các cấu trúc đối tượng phân phối (COM và CORBA)

Cú pháp PHP là giống C.

Trang 3

2 Khái niệm về mã hóa và giải mã

2.1 Khái niệm về mã hóa (encode)

Trong mật mã học, một ngành toán học ứng dụng cho công nghệ thông tin, mã hóa là phương pháp để biến thông tin (phim ảnh, văn bản, hình ảnh ) từ định dạng bình thường sang dạng thông tin không thể hiểu được nếu không có phương tiện giải mã.

Từ thời xa xưa, mã hóa được sử dụng nhiều trong các thư từ, điện tín, đặc biệt được ưa chuộng khi có chiến tranh xảy ra, đóng góp quan trọng vào việc đảm bảo an toàn thông tin.

Ngày nay, thời đại mà internet phát triển một cách nhanh chóng, khi mà nhà nhà người người đều sử dụng internet và chia sẻ những thông tin cá nhân của mình trên đó Việc bảo mật những thông tin này là thực sự cần thiết, và một trong những cách để bảo mật thông tin hữu hiệu nhất hiện nay là mã hóa.

2.2 Khái niệm về giải mã (decode)

Giải mã là phương pháp để đưa từ dạng thông tin đã được mã hóa về dạng thông tin ban đầu, quá trình ngược của mã hóa.

Trang 4

II. CÁC KIỂU MÃ HÓA TRONG PHP VÀ CÁCH GIẢI MÃ

1. Mã hóa Encode / Decode

1.1Giới thiệu

Trường hợp cần viết một chuỗi unicode được mã hóa mà không được sử dụng trực tiếp ký tự unicode vào code Cách này đặc biệt hữu dụng trong việc sửa đổi bytecode của java để hiển thị tiếng việt.

1.2Ví dụ

Sử dụng hàm json_encode sẽ giúp bạn tìm ra chuỗi mã hóa unicode.

header('content-type:application/json'); #or text/plain

echo json_encode(array('fullname'=>'hoang','address'=>'An Giang','LoanType'=>'Vay theo lương'));

Kết quả ra chuỗi json thế này chứa các kỹ tự unicode mã hóa giống như thế này [{"fullname":"hoang","address":"An Giang","loanType":"Vay theo l\u01b0\u01a1ng"}]

Để hiển thị chuỗi giải mã đọc được từ ký tự unicode mã hóa bởi json_encode, chúng

ta gọi hàm json_decode.

print_r(json_decode('["Vay theo l\u01b0\u01a1ng"]'));

Kết quả chuyển thành mảng có chứa ký tự đã giải mã:

Array ( [0] => Vay theo lương )

1.3Cách giải mã

Nếu mã hóa có dạng eval(base64_decode

php $o="encrypted text";eval(base64_decode('rubbish'));return;

Để giải mã đoạn code bị mã họa dạng này, chỉ cần copy đoạn “‘encrypted text” vào khung và nhấn nút Decode this Mess là được Trang web với công cụ giải mã: http://ottodestruct.com/decoder.php

Trang 5

Nếu mã hóa có dạng eval(gzinflate(base64_decode(‘encrypted text’)));

eval(gzinflate(base64_decode('80jNyclXyFTPVUhJTc5PSU0BAA==')));

Để giải mã đoạn code bị mã hóa dạng này, bạn chỉ cần copy đoạn:

“80jNyclXyFTPVUhJTc5PSU0BAA==” vào khung và nhấn decode là được Công cụ giải mã: http://www.tareeinternet.com/scripts/decrypt.php

Mã hóa dạng Rubbish

text';eval(base64_decode('rubbish'));

Để giải mã, bạn copy đoạn “encrypted text” vào khung và nhấn Decode this Rubbish Công cụ giải mã: http://www.tareeinternet.com/scripts/byterun.php

Một số kiểu encoding có thể sử dụng

MD5 converter

SHA1 converter

Chatset converter / iconv

Base64 encode

Base64 decode

UTF8 encode

UTF8 decode

Raw url encode

Raw url decode

HTML entities encode

HTML entities decode

Unix Time to Human Date

Human Date to Unix Time Stamp

Remove duplicate lines

Sort text lines

Pirate Text

Backwards – Mirrored Text

Trang 6

Ngoài ra có thể tìm hiểu thêm Sử dụng công cụ chuyển đổi

encoding/decoding chuỗi online:

http://www.cafewebmaster.com/online_tools/utf8_encode

1.4Mã hóa đối tượng

Nhiều lúc việc mã hóa mảng thành chuỗi json không tiện cho lắm, dễ bị người khác đọc dữ liệu vì tính bảo mật Có một cách khác giúp bạn mã hóa mọi đối tượng thành kiểu chuỗi, và Wordpress cũng đã sử dụng cách mã hóa các đối tượng của nó với kiểu này.

Bằng cách sử dụng hàm serialize() để mã hóa đối tượng và hàm ngược unserialize() sẽ biến nội dung kiểu chuỗi được mã hóa bởi serialize() thành chính object trước đó.

<?php

$data = array('name'=>"Hoang", "old"=>24);

var_dump($data);

/* array

'name' => string 'Hoang' (length=5)

'old' => int 24

*/

// Serialize array $data

$text_serialize = serialize($data);

var_dump($text_serialize);

/* string 'a:2:{s:4:"name";s:3:"Hoang";s:3:"old";i:24;}' (length=44) */

// Unserialize array $data

$data_unserialize = unserialize($text_serialize);

var_dump($data_unserialize);

/* array

'name' => string 'Hoang' (length=5)

'old' => int 24

*/

?>

Trang 7

Kết quả:

a:2:{s:4:"name";s:3:"Hoang";s:3:"old";i:24;}

Rất tiện cho lưu các đối tượng PHP vào Database.

Lưu ý: Ta có thể sử dụng serialize() và unserialize() cho mọi đối tượng PHP: object, array, base object,…

Trong Wordpress có viết hàm giúp bạn kiểm tra một chuỗi được tạo bởi serialize từ một đối tượng, trước khi sử dụng hàm giải mã đối tượng unserialize bạn nên kiểm tra có hợp lệ không với hàm is_serialized của wordpress Hàm này trích dẫn có sẵn trong wordpress

<?php

//I didn't write this code, it's from WordPress actually

function is_serialized( $data ) {

// if it isn't a string, it isn't serialized

if ( !is_string( $data ) )

return false;

$data = trim( $data );

if ( 'N;' == $data )

return true;

if ( !preg_match( '/^([adObis]):/', $data, $badions ) )

return false;

switch ( $badions[1] ) {

case 'a' :

case 'O' :

case 's' :

if ( preg_match( "/^{$badions[1]}:[0-9]+:.*[;}]\$/s", $data ) )

return true;

break;

case 'b' :

case 'i' :

case 'd' :

if ( preg_match( "/^{$badions[1]}:[0-9.E-]+;\$/", $data ) )

return true;

break;

}

return false;

}

?>

Trang 8

III DEMO MÃ HÓA FILE PHP BẰNG ZEND GUARD

- Bước 1 :

http://www.zend.com/en/downloads

Đồng thời hãy tiến hành cài đặt và khởi động chương trình

- Bước 2 : Tạo 1 Project bằng cách : File >>> New >>> Zend Guard Project.

Trang 9

- Bước 3 : Chọn source nguồn cần

mã hóa, ví dụ bằng file config.php vì file này chứa các khai báo database quan trọng của website/forum

>>> Next.

Trang 10

- Bước 4 : Lựa chọn cấu hình cách thức mã hóa cho phiên bản PHP phù hợp với nhu cầu sử dụng.

- Bước 5 : Nhấn nút Encode project như hình để bắt đầu tiến trình mã hóa:

- Kết quả : Sau khi Encode thành công, chương trình sẽ tạo ra file có nội dung

mã hóa tại Output Location: D:\Temp\Zend mà chúng ta đã khai báo trong

thông tin Project

Trang 11

IV KẾT LUẬN

- Càng ngày càng có rất nhiều loại lỗ hổng bảo mật mạng được tìm ra

- Nhớ các tools và công cụ, chúng ta đã tìm ra những phương pháp tấn công

lỗ hổng đề từ đó tìm các biện pháp khắc phục cho hệ thống mạng Lan của mình Việc vận dụng các công cụ có sẵn này bất kỳ người nào cũng có thể tự tìm tòi và khám phá ra được, tuy nhiên hãy sử dụng nó vào mục đích tốt, không nên sử dụngvào mục đích xấu và lạm dụng đời sống riêng tư cá nhân

- Trong đề tài này, mình đã thu thập được các thông tin trên các diễn đàn và một số hiểu biết cá nhân Phần cài đặt chạy trực tiếp trên máy và đã thử nghiệm thành công

- Tuy nhiên, trong quá trình biên soạn, có thể kiến thức còn chưa chuyên sâu

và một số thông tin thu thập trên mạng nên việc tìm hiểu còn nhiều thiếu sót, kính mong Quý Thầy Cô và các bạn thông cảm

Trang 12

TÀI LIỆU THAM KHẢO

Tiếng Việt :

1 Hưng Phú, “Hướng dẫn mã hóa code HTML và PHP”

Link :

https://www.youtube.com/watch?v=VzaZjhk6DDs

2 Mr.Toan, “Tổng hợp các trang mã hóa – giải mã code php”

Link :

http://congtoan.net/tong-hop-cac-trang-ma-hoa-giai-ma-code-php/

Tiếng Anh :

Convert character encoding – PHP

Link :

http://php.net/manual/en/function.mb-convert-encoding.php

Ngày đăng: 07/01/2017, 20:10

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w