Phần I : Hiểu biết về MNM
Câu hỏi 1 : (2 đ)
Copyleft là gì ? Nói Copyleft là loại bỏ bản quyền (Copyright) có đúng không ? Hãy giải thích.
Trả lời :............................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
Câu hỏi 2 : (2 đ)
Free software và freeware giống và khác nhau ở những điểm nào ?
Trả lời :............................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
Câu hỏi 3 : (1 đ)
Giấy phép sử dụng (license) là chỉ dành riêng cho phần mềm, đúng hay sai ? Nếu sai, hãy cho một vài
phản ví dụ.
Trả lời :............................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
Câu hỏi 4 : (1 đ)
Một tác giả X quyết định đặt phần mềm S của mình dưới giấy phép GPL (General Public license).
Anh ta đa sao chép nguyên văn giấy phép này vào gói phần mềm cũng như vào các tệp mã của phần
mềm. Phần mềm này như vậy đa trở thành phần mềm GPL hay chưa ? Nếu chưa, hãy giải thích và
cho biết làm thế nào để phần mềm của tác giả X trở thành phần mềm GPL.
Trả lời :............................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
Câu hỏi 5 : (1 đ)
Một nhà phát triển cải tiến một phần mềm GPL, sau đó đa bán sản phẩm của mình cho một khách
hàng Y. Việc làm này có gì trái với giấy phép GPL không ? Hãy giải thích.
Trả lời :............................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
Câu hỏi 6 : (1 đ)
Phong trào ¨nguồn mở¨ (Open Source) có phải chỉ dành riêng cho phần mềm hay có thể dùng cho cả
các lĩnh vực khác ? Nếu có hãy cho một vài ví dụ.
Trả lời :............................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
Câu hỏi 7 : (1 đ)
Một PMNM có thể sử dụng một khuôn dạng dữ liệu đóng không ? Hãy giải thích.
Trả lời :............................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
Câu hỏi 8 : (1 đ)
Làm thế nào để nhận biết một phần mềm tự do (free software) ?
Trả lời :............................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
Câu hỏi 9 : (2 đ)
CVS (Concurrent Versions System) là một công cụ hầu như không thể thiếu của các dự án PMNM.
Hãy cho biết lợi ích của CVS và những gì công cụ này không thể làm được trong việc phát triển phần
mềm.
Trả lời :............................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................

Câu hỏi 10 : (3 đ)
Một công cụ khá phổ biến hay được phân phối cùng với mã nguồn của một PMNM là configure.
Công cụ này có công dụng gì cho người sử dụng PMNM ? Hãy chỉ ra các bước đặc trưng khi sử dụng
công cụ này.
Trả lời :............................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
Câu hỏi 11 : (2 đ)
Trong tác phẩm nổi tiếng ¨Thánh đường và chợ giời¨ (The Cathedral and the Bazar), tác giả Eric
Raymond, một trong những người khởi xướng phong trào Mã nguồn mở, đa dùng hình ảnh ¨chợ giời¨
để chỉ phương pháp xây dựng PMNM. Hãy nêu những đặc trưng chính của phương pháp này. Mọi
PMNM có phải đều được xây dựng theo mô hình này không ?
Trả lời :............................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
Câu hỏi 12 : (2 đ)
Một phần mềm có thể đồng thời được phân phối theo 2 loại giấp phép là mã nguồn mở và mã nguồn
đóng được không ? Nếu được thì làm như vậy có ích lợi gì ?
Trả lời :............................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
Phần I I : LibPDF++
Câu hỏi 13 (1đ)
Một công ty phần mềm OpenCom dự định sử dụng thư viện LibPDF++ trong sản phẩm thương mại
BigTester của mình. Theo như luật bản quyền thì công ty OpenCom có được phép làm điều này không?
a) Không thể được, do sử dụng LibPDF++ nên BigTester cũng phải là sản phẩm mã nguồn mở.
b) Có thể được, với điều kiện là trong sản phẩm BigTester phải có nói rõ là OpenCom đa sử
dụng LibPDF++ trong phần About và mã nguồn của LibPDF++ phải được phân phối kèm sản
phẩm.
c) Có thể được, với điều kiện là trong sản phẩm BigTester phải có nói rõ là OpenCom đa sử
dụng LibPDF++ trong phần About.
d) Được, OpenCom vẫn có quyền thương mại sản phẩm BigTester khi sử dụng LibPDF++.
Trả lời :............................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
Câu hỏi 14 (3đ)
Một lập trình viên muốn xuất một đoạn văn bản p ra tài liệu pdf với font f cho trước. Do đoạn văn bản
khá dài, nên không thể nào ghi trọn vẹn trên một dòng mà buộc phải ghi thành nhiều dòng (nhưng vẫn
nằm trong cùng một trang). Trả lời 2 câu hỏi sau:
a) (2đ) LibPDF++ có hỗ trợ trực tiếp việc xuất đoạn văn bản như trên hay không?
Trả lời :............................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
b) (1đ) Nếu có, đó là hàm nào? Nếu không có, vậy cần sử dụng hàm nào để tìm vị trí ngắt dòng?
(Chỉ cần chỉ ra tên hàm là đù)
Trả lời :............................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
Câu hỏi 15 (4đ)
Sử dụng trình biên dịch gcc phiên bản 3.2 trở lên (hoặc trình biên dịch tương đương) theo hướng dẫn
của tác giả, có thể xuất ra một chuỗi unicode (wstring) như trong Câu hỏi 14 không? Yêu cầu giải
thích rõ.
Trả lời :............................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
Câu hỏi 16 (2đ)
a) (1đ) Liệt kê tất cả các phiên bản pdf được LibPDF++ hỗ trợ:
Trả lời :............................................................................................................................................
.........................................................................................................................................................
4/16
b) (1đ) Chỉ ra tập tin, dòng liên quan.
Trả lời :............................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
Câu hỏi 17 (5đ)
a) (1đ) LibPDF++ định nghĩa một số loại font chữ chuẩn, có thể sử dụng trong tài liệu pdf mà
không cần nhúng font chữ vào tài liệu. Có bao nhiêu họ font chữ chuẩn được định nghĩa trong
tài liệu pdf? Liệt kê ra.
Trả lời :............................................................................................................................................
.........................................................................................................................................................
b) (3đ) Để sử dụng một font chữ không chuẩn, cần phải sử dụng các hàm nào để nhúng font chữ
này vào tài liệu?
Trả lời :............................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
c) (1đ) Nếu như trong tài liệu pdf sử dụng font chữ Webdings nhưng chỉ dùng một vài ký tự, có
thể yêu cầu LibPDF++ chỉ nhúng font chữ của riêng các ký tự này vào tài liệu pdf được không
? Hãy giải thích.
Trả lời :............................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
Câu hỏi 18 (4đ)
Hãy thực hiện sửa đổi trên thư viện LibPDF++ sao cho, bất kể lập trình viên có yêu cầu nhúng font
hay không thì font chữ vẫn không được nhúng vào tài liệu pdf. Yêu cầu chỉ rõ các tập tin, vị trí cần
sửa đổi và nội dung sửa đổi.
Trả lời :............................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................

Câu hỏi 19 (3đ)
Sử dụng thư viện, hãy viết đoạn code để tạo ra tệp congr.pdf có dòng chữ:
“Chuc cuoc thi ma nguon mo thanh cong”
với font Times New Roman, chữ đậm + nghiêng
Trả lời :............................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
Câu hỏi 20 (1đ)
Để dịch được thư viện libpdf cần có các thư viện dưới đây. Trong số đó thư viện nào chỉ dùng mã
nguồn mà không cần biên dịch.
a) Boost
b) Freetype
c) libjpeg
d) zlib
Trả lời :............................................................................................................................................
.........................................................................................................................................................
Câu hỏi 21 (1đ)
Namespace của thư viện libpdf được đặt tên là ...
Trả lời :............................................................................................................................................
.........................................................................................................................................................
Câu hỏi 22 (3đ)
Hãy cho biết công cụ tạo các Makefile của bộ thư viện libPDF. Khi chúng ta muốn thay đổi tập các
tệp nguồn cần biên dịch thì ta phải sửa đổi những tệp nào.
Trả lời :............................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................

Phần I II : MySQL++
Câu hỏi 23 (5đ)
Cho trước một biến conn (kiểu Connection) đa kết nối với mysql và một biến query (kiểu Query)
được tạo từ conn.
a) (1đ) Lập trình viên muốn thực hiện câu truy vấn có dạng CREATE TABLE … và muốn biết
lệnh xóa có thực hiện thành công hay không. Hãy trình bày cách đơn giản nhất.
Trả lời :............................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
bSuccess = ...............................................................................................................................
b) (1đ) Lập trình viên muốn thực hiện câu truy vấn có dạng UPDATE … WHERE … và muốn
biết có bao nhiêu dòng được cập nhật. Hãy trình bày cách đơn giản nhất.
Trả lời :............................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
int nAffectedRows = .........................................................................................................
c) (3đ) Cho một bảng mytable có cấu trúc gồm 3 trường :
id : int
target : varchar(1024)
filename : varchar(256)
với khoảng 100 triệu bản ghi. Lập trình viên muốn kiểm tra xem tập tin nào đa bị xóa thì báo
ra màn hình thông tin về id, target và filename liên quan. Giả sử cho trước hàm
KiemTraVaBaoCao(int nId, std::string sTarget, std::string sFilename). Hãy
trình bày cách hiệu quả nhất để thu được kết quả trên.
Trả lời :............................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
KiemTraVaBaoCao(…………………………,…………………………,…………………………);
Câu hỏi 24 (5đ)
Cho trước một biến res (kiểu Result) đa có sẵn dữ liệu kết quả. Trả lời các câu hỏi sau:
a) (1đ) Hàm res.size() có ý nghĩa gì?
Trả lời :............................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................

b) (1đ) Hàm res.preview() có ý nghĩa gì?
Trả lời :............................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
c) (3đ) Lập trình viên muốn lấy dòng dữ liệu cuối cùng trong res, cách nào là ngắn gọn và đơn
giản nhất? Yêu cầu chỉ ra 2 cách.
Trả lời cách 1 (1đ):...........................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
Row rowlast1 =
Trả lời cách 2 (2đ):...........................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
Row rowlast2 =
Câu hỏi 25 (4đ)
Cho một đoạn ví dụ sau sử dụng thư viện mysql++:
using namespace mysqlpp;
Connection conn;
conn.connect("sampledb", "", "root");
Query query = conn.query();
query << "select * from my table;";
Result res;
try {
Result res = query.store();
if (res == NULL)
cout << "Khong co du lieu" << endl;
else
cout << "Co du lieu" << endl;
} catch (Exception&) {
cout << "Co exception xay ra" << endl;
}.
. .
Giả sử kết nối (conn.connect) thành công và trong ¨sampledb¨ có bảng tên là ¨my table¨. Trả lời các
câu hỏi sau:

a) (3đ) Kết quả xuất ra màn hình là gì? Giải thích rõ tại sao?
Trả lời :............................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
b) (1đ) Dòng “} catch (Exception&) {” sẽ bắt tất cả các lỗi xảy ra. Vậy nếu chỉ muốn
bắt lỗi liên quan đến việc thực hiện truy vấn, cần thay Exception bằng gì?
Trả lời :............................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
Câu hỏi 26 (4đ)
Cho đoạn chương trình sau sử dụng thư viện MySQL++.
try {
Connection conn;
bool bSucceed = conn.connect(db, server, "demo");
if (!bSucceed) {
cout << "Khong the ket noi mysql" << endl;
exit(0);
} cout << "
Ket noi mysql thanh cong" << endl;
} catch(Exception&) {
cout << "Da co loi nghiem trong xay ra" << endl;
}
Giả sử mysql server đang chạy trên cùng máy này và đa có database tên là testdb. Giả sử đăng nhập
user demo với password rỗng là hợp lệ, trả lời các câu hỏi sau:
a) (1đ) Trong trường hợp db = NULL, server = "" thì kết quả xuất ra màn hình là gì? Giải thích
rõ.
Trả lời :............................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
b) (2đ) Trong trường hợp db = "testdb", server = "fakeserver" và không có server nào tên là
fakeserver thì kết quả xuất ra màn hình là gì? Giải thích rõ.
Trả lời :............................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................

c) (1đ) Trong trường hợp db = "", server = "" thì kết quả xuất ra màn hình là gì? Giải thích rõ.
Trả lời :............................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
Câu hỏi 27 (8đ)
Hãy thực hiện các sửa đổi cần thiết trong thư viện MySQL++ để có thể biết cổng kết nối mặc định
với MySQL server là gì? Hãy chứng tỏ rằng cách sửa đổi của bạn là hiệu quả nhất. Giả thiết mysql
server đang chạy tại máy thử nghiệm, có user demo và password là rỗng.
Trả lời (các sửa đổi trong MySQL++, ghi rõ tập tin nào, dòng mấy):
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
Các sửa đổi cần thực hiện sao cho khi sử dụng thư viện MySQL++ đa sửa đổi, biết được cổng chuẩn
bằng các lệnh sau:
Trả lời: Connection conn;
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
int nDefaultPort = conn.GetDefaultPort();

Câu hỏi 28 (6đ)
Cho sẵn một biến conn (kiểu Connection) đa kết nối thành công. Không thực hiện sửa đổi mã nguồn
thư viện MySQL++, có cách nào để thực hiện được hàm disconnect() không? Nếu không, tại sao; nếu
được, trình bày đoạn mã sử dụng để thực hiện disconnect.
Trả lời :............................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.......................................................................................................................................................................
.......................................................................................................................................................................
.......................................................................................................................................................................
.......................................................................................................................................................................
.......................................................................................................................................................................
.......................................................................................................................................................................
.......................................................................................................................................................................
.......................................................................................................................................................................
.......................................................................................................................................................................
Câu hỏi 29 (1đ)
Theo bạn, sau khi nghiên cứu các tệp trong thư mục của thư viện này, thư viện có khả năng biên dịch
trong môi trường Windows với Visual Studio 6.0 không?
a) Có
b) Không
Trả lời :............................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
Câu hỏi 30 (1đ)
Khi bạn sử dụng thư viện này và gây ra hỏng hóc nghiêm trọng với hệ thống dữ liệu của bạn, bạn có
thể yêu cầu tác giả chịu trách nhiệm không?
a) Có
b) Không
Trả lời :............................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
Câu hỏi 31 (2đ)
Hãy sử dụng thư viện MySQL++, viết đoạn code để kết nối vào một cơ sở dữ liệu MySQL, select nội
dung của một bảng và in nội dung đó ra màn hình
Trả lời :............................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
Câu hỏi 32 (1đ)
Trong tệp Makefile
MAKEARGS = CC="$(CC)" CXX="$(CXX)" CFLAGS="$(CFLAGS)" CXXFLAGS="$(CXXFLAGS)" \
CPPFLAGS="$(CPPFLAGS)" LDFLAGS="$(LDFLAGS)" DEBUG="$(DEBUG)" \
BUILD="$(BUILD)"
CXX có nghĩa là gì?
Trả lời :............................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
Câu hỏi 33 (1đ)
Khi sử dụng, phát tán, dịch tài liệu hướng dẫn sử dụng (user manual) của thư viện mysql++ có phải
tuân theo nguyên tắc nào không? Nếu có, hãy chỉ ra ở đâu.
Trả lời :............................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
Câu hỏi 34 (1đ)
Trong những thông tin dưới đây, chúng ta cần ít nhất thông tin nào để tạo một kết nối CSDL trong
một ứng dụng bằng MySQL++.
a) host
b) database
c) username
d) password
e) không cần bất kỳ thông tin nào
Trả lời :............................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................

Câu hỏi 35 (1đ)
Để cài đặt được MySQL++ , chúng ta cần phải có thêm những thư viện nào dưới đây
a) MySQL C API
b) MySQL Connector
c) MySQL ODBC driver
d) STL
Trả lời :............................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
Câu hỏi 36 (2đ)
Viết các câu lệnh cho phép tạo một kết nối được mã hoá bằng SSL đến một CSDL với các thông số
db=test, host=localhost, user=root, passwd=123456.
Trả lời :............................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
Phần IV : CryptLib
Câu hỏi 37 (4đ)
a) (2đ) Thời gian timeout mặc định của một session trong CryptLib là bao nhiêu?
Trả lời :............................................................................................................................................
.........................................................................................................................................................
b) (2đ) Nếu muốn sửa đổi giá trị mặc định này thanh 120 giây thì cần thực hiện những sửa đổi
nào. Ghi rõ tập tin, vị trí, nội dung sửa đổi.
Trả lời :............................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
13/16
Câu hỏi 38 (2đ)
Chương trình thử nghiệm test/testlib.c thực hiện rất nhiều loại kiểm tra, ví dụ self-test,
lowlevel-test, .... Vậy nếu không muốn thực hiện self-test thì phải làm thế nào.
Trả lời :............................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.......................................................................................................................................................................
.......................................................................................................................................................................
Câu hỏi 39 (7đ)
Cho hàm sau :
void MySmallHash(BYTE* hashBuffer, int length, BYTE* hashResult)
// CRYPT_MAX_HASHSIZE bytes
{
CRYPT_CONTEXT hashContext;
int value;
cryptInit();
cryptCreateContext(&hashContext,CRYPT_UNUSED,CRYPT_ALGO_SHA );

}
a) (5đ) Hoàn tất hàm trên để thực hiện việc băm dữ liệu theo thuật toán SHA từ hashBuffer có
chiều dài length và trả kết quả về trong hashResult. Bổ sung vào chỗ …
Trả lời :............................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
a) (2đ) Giả sử biến BYTE* sHello trỏ đến chuỗi "Chao mung ban den voi cuoc thi OLP2k6"
và biến BYTE sResult[CRYPT_MAX_HASHSIZE]. Sau khi gọi
MySmallHash(sHello, strlen(sHello), sResult)
Giá trị của sResult[6] là bao nhiêu (kiểu số nguyên không dấu)?
Trả lời :............................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................

Câu hỏi 40 (5đ)
Xét cấu trúc CERT_INFO trong tập tin cert/cert.h, dòng 530-636. Hãy sửa đổi thư viện
CryptLib sao cho mọi certificate được tạo luôn có hiệu lực 15 năm. Sửa như thế nào cho đơn giản
nhất? Ghi rõ sửa các tập tin nào, dòng nào, nội dung sửa đổi.
Trả lời :............................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
Câu hỏi 41 (2đ)
Thuật toán RSA sử dụng thuật toán nào để tạo số nguyên tố?
Trả lời :............................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
Câu hỏi 42 (4đ)
Muốn thay đổi thuật toán tạo số nguyên tố đang dùng của RSA thành sàng nguyên tố (prime sieve
algorithm) thì phải sửa như thế nào cho đơn giản nhất? Ghi rõ các tập tin, dòng sửa đổi, nội dung sửa
đổi.
Trả lời :............................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................

Câu hỏi 43 (1đ)
Trong file /misc/config.h, mục đích của các dòng 20 -25 (dưới đây) là gì:
#if defined( __BEOS__ ) || defined( __Câu hỏi ORUS__ ) || defined( __ECOS__ ) ||
\
defined( __PALMOS__ )||defined( __RTEMS__ )||defined( __SYMBIAN32__ )|| \
defined( __TANDEM_NSK__ ) || defined( __TANDEM_OSS__ ) || \
defined( __UNIX__ ) || defined( __WINDOWS__ )
#define USE_TCP
#endif
Trả lời :............................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
Câu hỏi 44 (1đ)
Khi sử dụng thư viện Cryptlib, các hành động nào sau đây là không thể chấp nhận được :
a) Sử dụng thư viện cho mục đích phi thương mại
b) Sử dụng thư viện cho mục đích thương mại
c) Xóa phần tuyên bố ở các file code của tác giả
d) Sửa chữa và phân phối lại thư viện
Trả lời :............................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
Câu hỏi 45 (1đ)
Khi sử dụng thư viện, đoạn code sau làm công việc gì:
status = cryptInit();
if( cryptStatusError( status ) )
{
printf( "cryptInit() failed with error code %d.\n", status );
exit( EXIT_FAILURE );
}
Trả lời :............................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................