Tải bản đầy đủ (.pdf) (65 trang)

Xây dựng ứng dụng di động cung cấp và xác thực thông tin nguồn gốc sản phẩm sạch

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.2 MB, 65 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC LẠC HỒNG

NGUYỄN QUỐC MINH
XÂY DỰNG ỨNG DỤNG DI ĐỘNG CUNG CẤP VÀ XÁC
THỰC THÔNG TIN NGUỒN GỐC SẢN PHẨM SẠCH

LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN

Đồng Nai, Năm 2017


BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC LẠC HỒNG

NGUYỄN QUỐC MINH
XÂY DỰNG ỨNG DỤNG DI ĐỘNG CUNG CẤP VÀ XÁC
THỰC THÔNG TIN NGUỒN GỐC SẢN PHẨM SẠCH

LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
Chuyên ngành: Công Nghệ Thông Tin
Mã số : 60.48.02.01
NGƯỜI HƯỚNG DẪN KHOA HỌC
PGS. TS. ĐẶNG TRẦN KHÁNH

Đồng Nai, Năm 2017


LỜI CẢM ƠN
Tôi xin chân thành gửi lời cảm ơn tới PGS.TS Đặng Trần Khánh đã tận tình hướng
dẫn tôi thực hiện luận văn này. Trong thời gian nghiên cứu và làm việc với Thầy, bản


thân đã nhận được rất nhiều ý kiến đóng góp thực tiễn quý giá, giúp tôi học hỏi và tiếp
thu những kiến thức lý luận, phương pháp nghiên cứu và thực tiễn để có thể áp dụng vào
đề tài luận văn.
Tôi xin chân thành cảm ơn Khoa Sau Đại Học - Trường Đại Học Lạc Hồng đã lập
chương trình đào tạo Cao Học tại trường để bản thân có cơ hội học tập nâng cao trình
độ. Xin cảm ơn quý Thầy/Cô, Giảng Viên đã giảng dạy và cung cấp những giờ, bài giảng
quý báu tại Trường Đại Học Lạc Hồng, giúp tôi nắm vững và học hỏi được thêm nhiều
kiến thức chuyên ngành, kiến thức liên quan để áp dụng vào thực tiễn cuộc sống và công
việc sau này.
Cuối cùng, tôi xin chân thành cảm ơn ban lãnh đạo nhà trường, quý Thầy/Cô cùng
với các bạn học viên, quý phụ huynh đã ủng hộ, giúp đỡ trong suốt quá trình thực hiện
đề tài. Cảm ơn các thành viên trong gia đình đã động viên tinh thần, thời gian, vật chất
trong quá trình học tập tại Trường Đại Học Lạc Hồng.
HỌC VIÊN

NGUYỄN QUỐC MINH


LỜI CAM ĐOAN
Tôi xin cam đoan tất cả các nội dung của Luận văn hoàn toàn được hình thành,
nghiên cứu và phát triển từ những quan điểm của chính cá nhân tôi dưới sự hướng dẫn
khoa học của PGS.TS Đặng Trần Khánh. Các số liệu và kết quả có được trong Luận văn
Thạc sĩ là hoàn toàn trung thực.
Tôi xin chịu trách nhiệm về nội dung trong luận văn của mình.
HỌC VIÊN

NGUYỄN QUỐC MINH


TRƯỜNG ĐẠI HỌC LẠC HỒNG

KHOA SAU ĐẠI HỌC
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

TÓM TẮT LUẬN VĂN
(Dùng cho học viên và người hướng dẫn)
Đề tài: Xây dựng ứng dụng di động cung cấp và xác thực thông tin nguồn gốc sản
phẩm sạch.
Ngành: Công nghệ thông tin

Mã số:

60.48.02.01

Học viên: Nguyễn Quốc Minh
Người hướng dẫn: PGS.TS. Đặng Trần Khánh
NỘI DUNG TÓM TẮT
1. Nội dung được giao và kết quả mong đợi của người hướng dẫn
Xây dựng ứng dụng di động cung cấp và xác thực thông tin nguồn gốc sản phẩm
sạch dựa trên công nghệ mã vạch.
2. Cách thức giải quyết vấn đề


Nghiên cứu các văn bản quy phạm pháp luật về an toàn thực phẩm



Nghiên cứu nét đặc trưng của sản phẩm minh họa (bưởi Tân Triều)




Nghiên cứu cách thức xác thực thông tin bằng cách sử dụng phương pháp mã

hóa-giải mã trong lý thuyết mật mã


Nghiên cứu công nghệ mã vạch và ứng dụng của công nghệ này trong việc cung

cấp thông tin sản phẩm


Nghiên cứu mô hình client/server và lựa chọn các công nghệ hiện đại hỗ trợ giao

tiếp và tương tác


Nghiên cứu lập trình ứng dụng di động trên nền tảng Android



Tham khảo sử dụng thư viện mã nguồn mở trong việc xử lý hình ảnh mã vạch




Thiết kế mô hình dữ liệu phục vụ cho bài toán cung cấp thông tin sản phẩm dựa

trên công nghệ mã vạch


Phát triển ứng dụng và demo


3. Đánh giá về mặt khoa học của kết quả
Chúng tôi đã đưa ra giải pháp cung cấp và xác thực thông tin nguồn gốc sản phẩm.
4. Những vấn đề còn tồn tại so với nội dung được giao (nếu có)


Giải pháp được đề xuất hiện tại giới hạn ở mức cung cấp thông tin và xác thực

thông tin nguồn gốc sản phẩm.


Giao diện thiết kế ứng dụng còn đơn giản.

NGƯỜI HƯỚNG DẪN

Ngày 10 tháng 06 năm 2017
HỌC VIÊN

PGS.TS. ĐẶNG TRẦN KHÁNH

NGUYỄN QUỐC MINH


MỤC LỤC
Trang
Trang phụ bìa
Lời cám ơn
Lời cam đoan
Tóm tắt luận văn
Mục lục

Danh mục bảng
Danh mục hình
CHƯƠNG 1:

GIỚI THIỆU TỔNG QUAN ................................................................ 1

1.1

Giới thiệu về đề tài ............................................................................................. 1

1.2

Mục tiêu của đề tài.............................................................................................. 2

1.3

Đối tượng và phạm vi nghiên cứu ...................................................................... 2

1.3.1

Đối tượng nghiên cứu .................................................................................. 2

1.3.2

Phạm vi nghiên cứu ..................................................................................... 2

1.4

Phương pháp nghiên cứu .................................................................................... 2


1.4.1

Nội dung thực hiện ...................................................................................... 2

1.4.2

Phương pháp thực hiện ................................................................................ 3

1.5

Ý nghĩa của đề tài ............................................................................................... 3

CHƯƠNG 2:

CƠ SỞ LÝ THUYẾT ............................................................................ 4

2.1

Luật an toàn thực phẩm ...................................................................................... 4

2.2

Lý thuyết mật mã ................................................................................................ 5

2.2.1

Tổng quan lý thuyết mật mã ........................................................................ 5

2.2.2


Phương pháp mã hóa đối xứng .................................................................... 5

2.2.3

Phương pháp mã hóa bất đối xứng .............................................................. 6


2.3

Lý thuyết công nghệ mã vạch ............................................................................. 7

2.3.1

Giới thiệu chung .......................................................................................... 7

2.3.2

Cấu trúc của mã vạch ................................................................................... 8

2.3.3

Các dạng mã vạch phổ biến ....................................................................... 10

2.3.4

Thư viện Zxing .......................................................................................... 11

2.4

Ứng dụng di động trên nền tảng Android ......................................................... 12


2.4.1

Giới thiệu về hệ điều hành Android........................................................... 12

2.4.2

Môi trường lập trình phát triển ứng dụng Android Studio ........................ 13

2.5

Các công nghệ hiện đại triển khai mô hình Client/Server ................................ 16

2.5.1

Node.js ....................................................................................................... 16

2.5.2

MongoDB .................................................................................................. 16

CHƯƠNG 3:

PHÂN TÍCH VÀ THIẾT KẾ ỨNG DỤNG ....................................... 18

3.1

Phân tích yêu cầu ứng dụng .............................................................................. 18

3.2


Thiết kế usecase ................................................................................................ 19

3.3

Thiết kế giải pháp xác thực nguồn gốc thông tin sản phẩm ............................. 23

3.4

Thiết kế lược đồ tuần tự .................................................................................... 26

3.5

Thiết kế ứng dụng ............................................................................................. 27

3.5.1

Thiết kế cơ sở dữ liệu ................................................................................ 27

3.5.2

Thiết kế kiến trúc ....................................................................................... 32

3.5.3

Thiết kế giao diện ...................................................................................... 33

CHƯƠNG 4:
4.1


PHÁT TRIỂN HỆ THỐNG ................................................................ 37

Phát triển hệ thống Client/Server ..................................................................... 37

4.1.1

Các phương thức chức năng phía server .................................................... 38

4.1.2

Các thư viện phía server ............................................................................ 39


4.1.3

Các phương thức chức năng phía client .................................................... 39

4.1.4

Các thư viện phía client ............................................................................. 41

4.2

Cấu hình hệ thống ............................................................................................. 44

4.2.1

Cấu hình server .......................................................................................... 44

4.2.2


Cấu hình ứng dụng ..................................................................................... 44

4.3

Phiên bản thử nghiệm ....................................................................................... 45

CHƯƠNG 5:

TỔNG KẾT ......................................................................................... 51

5.1

Kết luận............................................................................................................. 51

5.2

Những thiếu sót chính của luận văn ................................................................. 52

5.3

Hướng phát triển tiếp theo ................................................................................ 52

Danh mục tài liệu tham khảo


DANH MỤC BẢNG
Bảng 2-1: Bảng mô tả ý nghĩa ký số đầu tiên của mã vạch UPC .................................... 9
Bảng 2-2: Các phiên bản của hệ điều hành Android...................................................... 12
Bảng 3-1: Mô tả usecase “Xem thông tin” .................................................................... 20

Bảng 3-2: Mô tả usecase “Quét mã vạch” ..................................................................... 20
Bảng 3-3: Mô tả usecase “Kích hoạt camera” ............................................................... 21
Bảng 3-4: Mô tả usecase “Xác thực mã vạch” ............................................................... 22
Bảng 3-5: Mô tả usecase “Hiển thị thông tin” ............................................................... 22
Bảng 3-6: Thiết kế các trường dữ liệu ........................................................................... 29
Bảng 4-1: Mô tả các phương thức chức năng chính phía server.................................... 38
Bảng 4-2: Mô tả các thư viện phía server ...................................................................... 39
Bảng 4-3: Mô tả các phương thức chức năng chính phía client .................................... 39
Bảng 4-4: Mô tả các thư viện của hệ điều hành Android phía client ............................. 41
Bảng 4-5: Mô tả các thư viện hỗ trợ của Java phía client .............................................. 43
Bảng 4-6: Mô tả các thư viện liên kết ngoài ở phía client ............................................. 43


DANH MỤC HÌNH
Hình 2-1: Mã hóa Caesar ................................................................................................. 5
Hình 2-2: Tổng quan truyền nhận thông điệp với khóa chia sẻ (Weippl, 2005) ............. 6
Hình 2-3: Mã hóa bất đối xứng ........................................................................................ 7
Hình 2-4: Một ví dụ về mã vạch ...................................................................................... 8
Hình 2-5: Mã vạch UPC và mã vạch EAN ...................................................................... 9
Hình 2-6: Cấu trúc của mã vạch theo hệ thống EAN..................................................... 10
Hình 2-7: Một ví dụ về mã vạch 2 chiều QR ................................................................. 11
Hình 2-8: Các định dạng được hỗ trợ bởi thư viện Zxing.............................................. 11
Hình 2-9: Một ví dụ về môi trường lập trình Android Studio ....................................... 15
Hình 2-10: Cấu hình thiết bị mô phỏng ......................................................................... 15
Hình 2-11: Mô hình hóa dữ liệu với MongoDB ............................................................ 17
Hình 3-1: Mô tả tổng quan hoạt động của ứng dụng ..................................................... 18
Hình 3-2: Lược đồ usecase............................................................................................. 19
Hình 3-3: Lược đồ mô tả giai đoạn tạo QR code chứa thông tin sản phẩm được mã hóa
........................................................................................................................................ 24
Hình 3-4: Lược đồ mô tả giai đoạn xác thực thông tin từ QR code............................... 24

Hình 3-5: QR Code truyền thống cho sản phẩm bưởi Tân Triều................................... 25
Hình 3-6: QR Code có logo cho sản phẩm Tân Triều ................................................... 25
Hình 3-7: Thiết kế lược đồ tuần tự của hệ thống ........................................................... 26
Hình 3-8: Sơ đồ quan hệ thực thể .................................................................................. 28
Hình 3-9: Dữ liệu lưu trữ cho sản phẩm bưởi đường lá cam Tân Triều ........................ 30
Hình 3-10: Dữ liệu lưu trữ cho sản phẩm bưởi ổi Tân Triều ......................................... 31
Hình 3-11: Kiến trúc hệ thống ....................................................................................... 32
Hình 3-12: Thiết kế màn hình chính .............................................................................. 34
Hình 3-13: Thiết kế màn hình quét mã vạch .................................................................. 34
Hình 3-14: Thiết kế màn hình chờ tải dữ liệu ................................................................ 35
Hình 3-15: Thiết kế màn hình hiển thị thông tin sản phẩm gốc .................................... 35
Hình 3-16: Thiết kế màn hình cảnh báo sản phẩm không đúng .................................... 36


Hình 4-1: Cấu hình ứng dụng......................................................................................... 44
Hình 4-2: Yêu cầu người dùng cho phép truy cập tài nguyên ....................................... 45
Hình 4-3: Màn hình khi khởi động ứng dụng ................................................................ 46
Hình 4-4: Màn hình quét mã vạch.................................................................................. 47
Hình 4-5: Màn hình chờ tải dữ liệu ................................................................................ 47
Hình 4-6: Màn hình thông tin sản phẩm bưởi đường lá cam Tân Triều ........................ 48
Hình 4-7: Màn hình thông tin đặc trưng sản phẩm bưởi đường lá cam Tân Triều ........ 48
Hình 4-8: Màn hình thông tin sản phẩm bưởi ổi Tân Triều ........................................... 49
Hình 4-9: Màn hình thông tin đặc trưng sản phẩm bưởi ổi Tân Triều........................... 49
Hình 4-10: Màn hình cảnh báo....................................................................................... 50


1

CHƯƠNG 1:


GIỚI THIỆU TỔNG QUAN

1.1 Giới thiệu về đề tài
An toàn thực phẩm là một trong những nhu cầu chính yếu của người dân và đảm bảo
an toàn thực phẩm cũng là nhiệm vụ quan trọng trong công tác quản lý nhà nước. Tuy
nhiên ở nước ta, nguy cơ mất an toàn vệ sinh thực phẩm vẫn còn chiếm tỉ lệ khá cao (Cẩm
nang an toàn thực phẩm trong kinh doanh, 2015). Luật an toàn thực phẩm, số
55/2010/QH12, do Quốc Hội ban hành nêu rõ vai trò và trách nhiệm quản lý nhà nước của
Chính phủ, các Bộ, cơ quan ngang Bộ và UBND các cấp về an toàn thực phẩm. Trong đó,
yêu cầu về nguồn gốc xuất xứ, chất lượng hàng hóa sản phẩm trong kinh doanh thực phẩm
trở thành tiêu chí đánh giá về an toàn thực phẩm mà các cơ sở kinh doanh cần phải đáp
ứng trong quá trình thẩm định thực tế. Như vậy, việc cung cấp thông tin thực phẩm chẳng
những giúp cho cơ quan thẩm định an toàn vệ sinh thực phẩm mà còn rất cần thiết cho
người tiêu dùng.
Ngày nay, với sự tiến bộ vượt bậc của khoa học công nghệ, việc quản lý và cung cấp
các thông tin sản phẩm đã được triển khai dựa trên công nghệ mã vạch. Nhờ đó, các thông
tin thực phẩm có thể được lưu trữ và truyền tải bởi các mã vạch. Để đọc được các mã vạch
này, cần có các thiết bị chuyên dụng như đầu đọc mã vạch hoặc máy quét mã vạch. Tuy
nhiên, hiện nay bằng các camera được tích hợp ngay trong thiết bị di động cũng có thể đọc
được. Như vậy, ứng dụng di động trở thành một kênh đầy tiềm năng, thuận tiện, nhanh
chóng trong việc cung cấp thông tin thực phẩm đến người dùng.
Xuất phát từ những nhu cầu thực tế nêu trên, sự hỗ trợ của các công nghệ hiện đại, và
sự phổ biến của các ứng dụng, thiết bị di động thông minh, đề tài này sẽ hỗ trợ việc cung
cấp thông tin nguồn gốc thực phẩm đến với người dùng được thuận tiện từ chính các thiết
bị di động của họ. Đối tượng minh họa cung cấp thông tin nguồn gốc cho đề tài này là nông
sản bưởi Tân Triều, đặc sản nổi tiếng của làng Tân Triều, thành phố Biên Hòa, tỉnh Đồng
Nai. Ngoài ra, đề tài nghiên cứu góp phần xác thực nguồn gốc thông tin của thực phẩm
được cung cấp và phân phối trên thị trường, góp phần giảm thiểu tình trạng làm giả thông
tin nông sản thực phẩm, hướng đến tiêu chí an toàn nông sản thực phẩm cho người tiêu
dùng.



2
1.2 Mục tiêu của đề tài
Cung cấp và xác thực thông tin nguồn gốc nông sản thực phẩm sạch dựa trên công
nghệ mã vạch QR, cho người dùng từ thiết bị di động Smartphone dùng hệ điều hành
Android.
1.3 Đối tượng và phạm vi nghiên cứu
1.3.1 Đối tượng nghiên cứu
Cung cấp và xác thực thông tin về nguồn gốc và chất lượng thực phẩm sạch
bưởi Tân Triều và hiện thực hóa ứng dựng trên di động Smartphone dựa trên hệ điều hành
Android.
1.3.2 Phạm vi nghiên cứu
Xác thực thông tin về nguồn gốc và chất lượng thực phẩm sạch bưởi Tân Triều
tại làng Tân Triều thuộc thành phố Biên Hòa, tỉnh Đồng Nai.
Tìm hiểu một số tài liệu và các ứng dụng có liên quan đến việc đọc và xác thực
mã vạch trên nền tảng di động Smartphone dựa trên hệ điều hành Android.
1.4 Phương pháp nghiên cứu
1.4.1 Nội dung thực hiện
 Tìm hiểu luật an toàn thực phẩm, về thực phẩm sạch.
 Tìm hiểu thông tin sản phẩm sạch bưởi Tân Triều được phân phối bởi nhà
cung cấp.
 Tìm hiểu thuật toán mật mã, mã hóa và giải mã.
 Tìm hiểu công nghệ mã vạch QR.
 Tìm hiểu lập trình ứng dụng di động.
 Tìm hiểu thư viện xử lý hình ảnh mã vạch dùng cho ứng dụng di động.
 Thiết kế và xây dựng cơ sở dữ liệu.
 Thiết kế và xây dựng ứng dụng di động trên nền tảng Android.



3
1.4.2 Phương pháp thực hiện
 Đọc hiểu và nắm rõ: Luật an toàn thực phẩm số 55/2010/QH12, tiêu chuẩn
an toàn thực phẩm Viet Gap, tiêu chuẩn an toàn thực phẩm Global Gap
 Đọc hiểu một số tài liệu có liên quan về các đặc trưng của sản phẩm bưởi
Tân Triều
 Đọc hiểu một số tài liệu về mã hóa, giải mã thông tin bằng thuật toán mã
hóa RSA, SHA1, MD5, …
 Đọc hiểu tài liệu về công nghệ mã vạch QR (Quick Response) của Denso
Wave (Nhật Bản), tham khảo một số ứng dụng công nghệ mã vạch QR trong việc cung cấp
thông tin sản phẩm trên các tạp chí điện tử.
 Đọc hiểu và nắm vững mô hình mạng web client/server.
 Đọc hiểu và thiết kế CSDL phục vụ ứng dụng trên hệ quản trị cơ sở dữ liệu
SQLife - D. Richard Hipp.
 Đọc hiểu và sử dụng thư viện mã nguồn mở Zxing trong việc xử lý hình ảnh
mã vạch.
 Đọc hiểu ngôn ngữ lập trình ứng dụng di động trên nền tảng Android thông
qua bộ công cụ Android Studio.
1.5 Ý nghĩa của đề tài
Đề tài mang lại ý nghĩa thực tiễn là ứng dụng di động cung cấp thông tin nguồn gốc
sản phẩm sạch dựa trên công nghệ mã vạch với nền tảng Android. Ngoài ra, đề tài còn thể
hiện cách thức xác thực thông tin nguồn gốc thực phẩm trước khi thông tin này được cung
cấp cho người tiêu dùng.


4

CHƯƠNG 2:

CƠ SỞ LÝ THUYẾT


2.1 Luật an toàn thực phẩm
Luật an toàn thực phẩm, số 55/2010/QH12, do Quốc Hội nước ta ban hành nêu rõ vai
trò và trách nhiệm quản lý nhà nước của Chính phủ, các Bộ, cơ quan ngang Bộ và UBND
các cấp về an toàn thực phẩm. Trong đó, yêu cầu về nguồn gốc xuất xứ, chất lượng hàng
hóa sản phẩm trong kinh doanh thực phẩm trở thành tiêu chí đánh giá về an toàn thực phẩm
mà các cơ sở kinh doanh cần phải đáp ứng trong quá trình thẩm định thực tế (Cẩm nang an
toàn thực phẩm trong kinh doanh, 2015).
Năm 2012, Nghị định số 38/2012/NĐ-CP được Chính phủ ban hành vào ngày 25
tháng 4 năm 2012. Nghị định này quy định chi tiết thi hành một số điều của Luật An toàn
thực phẩm. Để triển khai Nghị định này, Bộ Công Thương cũng đã ban hành Thông tư số
29/2012/TT-BCT ngày 05 tháng 10 năm 2012. Thông tư này quy định việc cấp, thu hồi
giấy chứng nhận cơ sở đủ điều kiện an toàn thực phẩm thuộc trách nhiệm quản lý của Bộ
Công Thương.
Tiếp đến, Bộ Y tế, Bộ Nông nghiệp và Phát triển nông thôn, và Bộ Công Thương cũng
đã ban hành Thông tư liên tịch số 13/2014/TTLT-BYT-BNNPTNT-BCT vào ngày 09 tháng
4 năm 2014. Thông tư này hướng dẫn việc phân công, phối hợp quản lý nhà nước về an
toàn thực phẩm. Thông tư liên tịch đã đưa ra nguyên tắc cơ bản và quan trọng trong việc
phân công quản lý, đó là: một sản phẩm, một cơ sở sản xuất, kinh doanh thực phẩm chỉ
chịu sự quản lý của một cơ quan quản lý nhà nước. Việc đưa ra nguyên tắc này nhằm khắc
phục tình trạng chồng chéo trong quản lý an toàn thực phẩm. Ngoài ra, việc đưa ra danh
mục các sản phẩm/ nhóm sản phẩm thực phẩm thuộc thẩm quyền quản lý của từng Bộ cũng
tạo thuận lợi cho các tổ chức, cá nhân sản xuất kinh doanh thực phẩm trong việc thực hiện,
tuân thủ các quy định về pháp luật an toàn thực phẩm do từng Bộ quản lý (Cẩm nang an
toàn thực phẩm trong kinh doanh, 2015).
Như vậy, nguồn gốc xuất xứ của thực phẩm phải được đảm bảo như được quy định
trong luật an toàn thực phẩm. Ngoài ra, các bộ tiêu chuẩn an toàn thực phẩm như VietGap1,
GlobalGap2 sẽ ảnh hưởng đến quy trình xác thực sản phẩm sạch. Song song đó, tờ trình số
1
2


(truy cập 15/02/2017)
(truy cập 15/02/2017)


5
46/TTr-BQLĐA ngày 21 tháng 06 năm 2016 của Ban Quản lý đề án "chuỗi thực phẩm an
toàn" (Chi Cục An Toàn thực phẩm - Sở Y Tế) cũng có liên hệ đến quy trình xác thực thực
phẩm sạch3.
2.2 Lý thuyết mật mã
2.2.1 Tổng quan lý thuyết mật mã
Lý thuyết mật mã ra đời từ cách đây rất lâu. Mục tiêu của nó hướng đến bảo
mật thông tin thông qua các quy trình mã hóa và giải mã. Phương pháp cổ điển được biết
đến nhiều nhất là phương pháp mã hóa Caesar. Thông điệp sẽ được mã hóa bằng cách dịch
chuyển từng ký tự alphabet trong thông điệp theo một khoảng cách k được xác định trước.
Lúc này k đóng vai trò là khóa và có miền giá trị từ 1 đến 25. Để giải mã, các ký tự trong
thông điệp sẽ được dịch chuyển theo chiều ngược lại với khoảng cách k tương ứng. Thông
điệp ban đầu được gọi là thông điệp gốc, thông điệp sau quá trình mã hóa được gọi là thông
điệp đã được mã hóa.

Hình 2-1 minh họa cách thức mã hóa Caesar.

Hình 2-1: Mã hóa Caesar4
2.2.2 Phương pháp mã hóa đối xứng
Một cách tổng quát hóa, các thông điệp trước khi gửi đến người nhận sẽ được
mã hóa bởi một khóa k. Sau khi nhận được thông điệp mã hóa, người nhận sẽ giải mã thông
điệp với khóa k này để biết được nội dung thông điệp gốc từ người gửi.

Hình 2-2


mô tả tổng quan thông điệp truyền nhận giữa Alice và Bob thông qua hình thức dùng khóa
chia sẻ. Alice và Bob muốn truyền nhận thông điệp với nhau một cách bảo mật, không bị
bên thứ ba biết được nội dung thông điệp. Bob trước tiên sẽ gửi cho Alice thông tin khóa
chia sẻ k. Alice sẽ dùng khóa k này để mã hóa thông điệp và gửi thông điệp đã được mã
(truy cập 15/02/2017)
/>3
4


6
hóa cho Bob. Khi nhận được thông điệp đã được mã hóa từ Alice, Bob sẽ dùng chính khóa
k ban đầu đã gửi cho Alice để giải mã thông điệp. Như vậy, chỉ những người nào có khóa
k mới có thể giải mã thông điệp đã được mã hóa và biết được nội dung bên trong.

Hình 2-2: Tổng quan truyền nhận thông điệp với khóa chia sẻ (Weippl, 2005)
Phương pháp dùng chung một khóa cho cả hai giai đoạn mã hóa và giải mã
được gọi là phương pháp mã hóa đối xứng. Một số kỹ thuật cho phương pháp này được biết
đến như DES (Data Encryption Standard), 3-DES, AES (Advance Encryption Standard).
2.2.3 Phương pháp mã hóa bất đối xứng
Phương pháp mã hóa đối xứng yêu cầu khóa dùng chung phải được giữ bí mật
giữa hai bên truyền nhận thông điệp. Việc chia sẻ khóa dùng chung này dẫn đến nguy cơ
khóa dùng chung này bị bộc lộ cho bên thứ ba. Chính vì vậy, phương pháp mã hóa đối xứng
trở nên kém bảo mật.
Để khắc phục nhược điểm kém bảo mật của phương pháp mã hóa đối xứng,
phương pháp mã hóa bất đối xứng được đề xuất. Lúc này, hai khái niệm mới là khóa công
khai (public key) và khóa riêng tư (private key) xuất hiện. Đây là một cặp khóa được kết
hợp với một tác nhân trong quá trình mã hóa hay giải mã. Cụ thể hơn, nếu tác nhân đó sử
dụng khóa công khai để mã hóa thông điệp, thì thông điệp được mã hóa chỉ có thể sử dụng
khóa riêng tư để giải mã. Ngược lại, nếu tác nhân đó sử dụng khóa riêng tư để mã hóa thông
điệp, thì thông điệp được mã hóa chỉ có thể sử dụng khóa công khai để giải mã. Như vậy,

trong trường hợp của mã hóa bất đối xứng, một tác nhân (hoặc người dùng) sẽ sở hữu một
cặp khóa: khóa riêng tư và khóa công khai. Trong đó, khóa công khai được bộc lộ cho các
tác nhân khác, nhưng khóa riêng tư phải được giữ bí mật bởi người chủ sở hữu của nó.


7

Hình 2-3: Mã hóa bất đối xứng5
Hình 2-3 minh họa lược đồ cho phương pháp mã hóa bất đối xứng.
Trong trường hợp này, Bob muốn gửi thông điệp “Hello Alice!” cho Alice, và Bob muốn
chỉ có Alice mới biết nội dung thông điệp này trong khi các bên thứ ba khác không được
biết. Theo lý thuyết mã hóa bất đối xứng, Alice có một cặp khóa là khóa riêng tư của Alice
(Alice’s private key) và khóa công khai của Alice (Alice’s public key). Vì khóa công khai
là khóa mà chia sẻ công khai, nên Bob có thông tin khóa công khai của Alice. Bob sử dụng
khóa công khai này để mã hóa thông điệp “Hello Alice!”. Thông điệp được mã hóa có dạng
“6EB6957008E03CE4”. Thông điệp được mã hóa này được gửi đến cho Alice. Sau đó,
Alice sử dụng khóa riêng tư của mình để giải mã thông điệp và lấy nội dung “Hello Alice!”.
2.3 Lý thuyết công nghệ mã vạch
2.3.1 Giới thiệu chung
Mã vạch (barcode) là phương pháp lưu trữ và truyền tải thông tin bằng cách sử
dụng các ký mã vạch (barcode symbology) trên bề mặt các sản phẩm, hàng hóa. Các ký mã
vạch này là sự tổ hợp của các vạch thẳng và khoảng trắng giữa các vạch. Sự tổ hợp này
cùng với độ rộng của vạch và khoảng trắng dùng để biểu diễn các mẫu ký tự chữ và số.

5

/>

8
Hình 2-4 minh họa một ví dụ về mã vạch. Sự tổ hợp của các ký mã vạch, độ rộng của vạch

và khoảng trắng biểu diễn cho chuỗi số “8935002301010”.

Hình 2-4: Một ví dụ về mã vạch6
Nội dung được biểu diễn bởi mã vạch thông thường là mã số hàng hóa, đây là
đặc trưng của hàng hóa dùng để phân biệt các loại hàng hóa với nhau. Hiện nay, hai hệ
thống mã số hàng hóa được sử dụng trong thương mại toàn cầu là:
Hệ thống UPC (Universal Product Code): hệ thống các mã hàng hóa được quản
lý bởi Hội đồng mã thống nhất Mỹ (Uniform Code Council) từ năm 1970.
Hệ thống EAN (European Article Number): hệ thống các mã hàng hóa được
quản lý bởi 12 nước sáng lập viên ở Châu Âu từ năm 1977.
2.3.2 Cấu trúc của mã vạch
Tùy theo hệ thống mã hàng hóa mà mã vạch có nhiều cấu trúc và biến thể khác
nhau. Ví dụ hệ thống mã UPC gồm 12 ký số, không bao gồm ký tự, trong khi đó mã EAN
bao gồm 13 ký số.
Hình 2-5 minh họa hai loại mã vạch thuộc hệ thống UPC và EAN.

6

/>

9
Đối với hệ thống UPC, ký số đầu tiên mô tả ý nghĩa và chủng loại sản phẩm như
được minh họa ở

Bảng 2-1. Kế đến là 5 ký số tiếp theo biểu diễn mã người bán, mã

doanh nghiệp hay mã của nhà sản xuất. 5 ký số tiếp theo được dùng để biểu diễn mã sản
phẩm/hàng hóa của người bán. Và 1 ký số cuối cùng đóng vai trò là ký số kiểm tra, xác
nhận tính chính xác của toàn bộ chuỗi số UPC.


Hình 2-5: Mã vạch UPC và mã vạch EAN7
Bảng 2-1: Bảng mô tả ý nghĩa ký số đầu tiên của mã vạch UPC
STT

Giá trị

Ý nghĩa

1

0, 6, 7

Cho các mặt háng khác không nằm trong phạm vi 2 đến 5

2

2

Các món hàng thịt và nông sản

3

3

Thuốc và các mặt hàng y tế

4

4


Dành cho người bán lẻ

5

5

Phiếu lĩnh hàng hóa

Đối với hệ thống EAN, 2 hoặc 3 ký số đầu tiên là mã quốc gia. Tiếp theo là mã
doanh nghiệp bao gồm 4, 5, hoặc 6 ký số. Tiếp đến là mã mặt hàng bao gồm 5, 4, hoặc 3
ký số tùy vào số lượng ký số được dùng cho mã doanh nghiệp. Và ký số cuối cùng đóng

7

/>

10
vai trò là ký số kiểm tra.

Hình 2-6 minh họa cấu trúc của một mã vạch theo hệ

thống EAN.

Hình 2-6: Cấu trúc của mã vạch theo hệ thống EAN8
Mã vạch thường được quét bởi các máy quét mã vạch. Ngày nay, mã vạch còn
có thể được quét bởi các phần mềm chuyên dụng.
2.3.3 Các dạng mã vạch phổ biến
Hiện nay có 2 dạng mã vạch phổ biến là mã vạch 1 chiều và mã vạch 2 chiều.
Trong đó, mã vạch được biểu diễn bởi tổ hợp các vạch và khoảng trắng là mã vạch 1 chiều.
Mã vạch được biểu diễn bởi ma trận mã là dạng mã vạch 2 chiều. Đối với mã vạch 2 chiều,

ma trận mã sẽ chứa các ô vuông.
Một thể hiện của mã vạch 2 chiều là hệ thống mã Quick Response (QR Code),
được phát triển bởi công ty Denso Wave, Nhật Bản vào năm 1994 (Borko Furht, 2011).
Mục tiêu của mã QR là cho phép giải mã ở tốc độ cao.
Hình 2-7 minh họa một ví dụ về mã vạch 2 chiều QR.

8

/>

11

Hình 2-7: Một ví dụ về mã vạch 2 chiều QR
2.3.4 Thư viện Zxing
Thư viện Zxing là một thư viện mã nguồn mở. Thư viện này được hiện thực
bằng ngôn ngữ Java được sử dụng để quét nội dung của mã vạch 1 và 2 chiều.
Hình 2-8 cho thấy các định dạng mã vạch được hỗ trợ bởi thư viện Zxing.

Hình 2-8: Các định dạng được hỗ trợ bởi thư viện Zxing9

9

/>

12
2.4 Ứng dụng di động trên nền tảng Android
2.4.1 Giới thiệu về hệ điều hành Android
Hệ điều hành Android10 là hệ điều hành mã nguồn mở dành cho các thiết bị di
động như điện thoại thông minh (smartphone) và máy tính bảng (tablet). Dự án phát triển
hệ điều hành Android này ban đầu được tài trợ bởi Google, và sau này được chính thức

mua lại bởi Google vào năm 2005.
Theo thời gian phát triển, hệ điều hành Android có nhiều phiên bản khác nhau
như được mô tả ở Bảng 2-2. Các phiên bản này có những đặc tính kỹ thuật khác nhau theo
sự phát triển cũng như yêu cầu các cấp độ API khác nhau trong việc lập trình ứng dụng.
Thông thường, một phiên bản hệ điều hành Android yêu cầu cấp API là 18 thì các ứng dụng
được lập trình với các API lớn hơn hoặc bằng 18 mới có thể chạy trên phiên bản hệ điều
hành Android này.
Bảng 2-2: Các phiên bản của hệ điều hành Android 10
Phiên bản

10

Tên mã

Ngày phát hành

Cấp API

7.0

Nougat

tháng 8 năm 2016

24

6.0

Marshmallow


tháng 10 năm 2015

23

5.0

Lollipop

tháng 7 năm 2014

20

4.4

KitKat

tháng 10 năm 2013

19

4.3

Jelly Bean

25 tháng 7 năm 2013

18

4.2.x


Jelly Bean

13 tháng 11 năm 2012

17

4.1.x

Jelly Bean

9 tháng 7 năm 2012

16

4.0.x

Ice Cream Sandwich

16 tháng 12 năm 2011

15

3.2

Honeycomb

15 tháng 7 năm 2011

13


3.1

Honeycomb

10 tháng 5 năm 2011

12

2.3.3–2.3.7

Gingerbread

9 tháng 2 năm 2011

10

/>

13
Phiên bản

Tên mã

Ngày phát hành

Cấp API

Gingerbread

6 tháng 12 năm 2010


9

2.2

Froyo

20 tháng 5 năm 2010

8

2.0–2.1

Eclair

26 tháng 10 năm 2009

7

1.6

Donut

15 tháng 9 năm 2009

4

2.3–2.3.2

2.4.2 Môi trường lập trình phát triển ứng dụng Android Studio

Android Studio là một môi trường lập trình phát triển ứng dụng do Google giới
thiệu vào năm 2013 nhằm cung cấp môi trường lập trình cho các ứng dụng chạy trên hệ
điều hành Android. Với Android Studio, người lập trình sẽ được làm việc với các tính năng
chính yếu được hỗ trợ trong Android Studio như:
 Bộ soạn thảo mã thông minh (Intelligent Code Editor): giúp người lập trình
phát triển nhanh các đoạn mã thông qua các hình thức gợi ý và hoàn chỉnh đoạn mã.
 Tính năng chạy tức thời (Instant Run): bất cứ khi nào có sự thay đổi mã
nguồn, tính năng này cho phép ứng dụng đang chạy trên các thiết bị thật hoặc dưới dạng
mô phỏng thay đổi tương ứng ngay lập tức.
 Hỗ trợ mô phỏng nhanh và đa dạng (Fast and Feature-rich Emulator): hỗ trợ
mô phỏng nhanh và cấu hình các thiết bị di động được ảo hóa và đa dạng chủng loại từ điện
thoại thông minh, máy tính bảng, các thiết bị di động khác.
 Hệ thống xây dựng vững chắc và linh hoạt (Robust and Flexible Build
System): hỗ trợ người lập trình bộ biên dịch ứng dụng tự động hóa hiệu năng cao Gradle.
 Tạo ra các file cài đặt cho ứng dụng trên nền tảng Android.
 Các công cụ hỗ trợ khác cho việc phát triển ứng dụng trên nền tảng Android.
Hình 2-9 minh họa một ví dụ về các thành phần chính yếu trong môi trường
lập trình Android Studio. Trong đó, 6 vùng chính được mô tả như sau:
 Vùng 1: Thanh công cụ của Android Studio
 Vùng 2: Cấu trúc hệ thống tài nguyên của ứng dụng, trong đó có các thành
phần con sau:


×