Core Java - Chương 1: Lập trình hướng đối tượng

Mục tiêu

Kết thúc chương, học viên có thể:

 ðịnh nghĩa Lập trình hướng ðối tượng (Object-oriented Programming).

 Nhận thức vềTrừu tượng hóa Dữliệu (Data Abstraction).

 ðịnh nghĩa một Lớp (Class).

 ðịnh nghĩa một ðối tượng (Object).

 Nhận thức ñược sựkhác biệt giữa Lớp và ðối tượng.

 Nhận thức ñược sự cần thiết ñối với phương thức Thiết lập (Construction)

và Hủy (Destruction).

 ðịnh nghĩa tính Bền vững (Persistence).

 ðịnh nghĩa vềtính ñóng gói dữliệu (Data Encapsulation)

 Hiểu biết vềtính Thừa kế(Inheritance).

 ðịnh nghĩa tính ða hình (Polymorphism).

 Liệt kê những ưu ñiểm của phương pháp hướng ðối tượng.

pdf235 trang | Chuyên mục: Java | Chia sẻ: dkS00TYs | Lượt xem: 1957 | Lượt tải: 1download
Tóm tắt nội dung Core Java - Chương 1: Lập trình hướng đối tượng, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
 thống quan trọng trên windows 95, 98 và NT systems. 
Tuỳ chọn keystore cũng có thể ñược sử dụng trong lệnh keytool, như sau: 
keytool –list keystore c:\java\try 
Câu lệnh này chỉ cho JDK tìm keystore trong file ñược gọi là ‘try’ trong thư 
mục ‘C:\java\try’. Nếu không tìm thấy, sẽ hiển thị thông báo lỗi như trên. 
Mục ‘-genkey’ có thể ñược sử dụng cùng với câu lệnh keytool ñể tạo cặp khoá 
công cộng/riêng. Bạn cũng có thể dùng một số các tuỳ chọn khác. Dạng ñơn 
giản nhất như sau: 
keytool –genkey –alias “I” 
Bí danh (alias) có thể ñược dùng lưu trữ, thay thế hoặc xoá cặp khoá. Các bí 
danh keytool không phân biệt chữ hoa. Trong lệnh trên, chúng ta không sử 
dụng tuỳ chọn keystore. Nếu cùng câu lệnh sử dụng tuỳ chọn keystore, sẽ ñược 
viết lại như sau: 
keytool –genkey –alias “I” –keystore “store” 
Trong lệnh trên, cặp khoá sẽ ñược lưu trữ trong keystore ‘store’, và không lưu 
trong keystore mật ñịnh của hệ thống. 
Sau khi nhập lệnh trên vào, và nhấn phím enter, keytool nhắc bạn nhập vào mật 
khẩu (password) cho keystore, như sau: 
Enter keystore password 
 230 
Nhập vào ‘password’ như yêu cầu. 
Tiếp theo, keytool nhắc bạn nhập vào các thông tin bổ sung như: 
What is your first and last name? (Tên và họ) 
[unknown] 
what is the name of your organization unit? 
[unknown]: software Development. 
What is the name of your organization? (Tên của tổ chức) 
[Unknown]: ABC Consultants (tư vấn ABC) 
What is the name of your city or Locality? (tên thành phố hoặc ñịa phương 
của bạn) 
[Unknown]: California 
What is the name of your State or Province? (tên bang hoặc tỉnh của bạn) 
[Unknown]:United States of America 
What is the two-letter country code for this unit?(Mã quốc gia với 2 ký tự) 
[Unknown]: US 
Khi bạn ñã nhập vào các thông tin, keytool hiển thị thông tin sau: 
Is <CN=Bob Fernandes, OU=Software Development, O=ABC Consultants, 
L=California, ST=United States of America, C=US>correct? 
[no]: 
Cuối cùng, keystool nhắc bạn nhập vào mật khẩu cho khoá riêng của bạn, như: 
Enter key password for 
(RETURN if same as keystore password) 
Thông tin trên ñược sử dụng ñể kết hợp sự phân biệt tên (name) X500 với bí 
danh (alias). Thông tin trên cũng có thể ñược ñưa vào trực tiếp từ mục chọn ‘-
dname’ 
Mật khẩu sau cùng phần biệt với mật khẩu keystore. Nó ñược dùng truy cập 
khoá riêng của cặp khoá công cộng. Mật khẩu có thể trực tiếp chỉ rõ bằng cách 
sử dụng tuỳ chọn ‘-keypass’. Nếu mật khẩu không chỉ rõ, mật khẩu keystore 
ñược sẽ ñược dùng. Tuỳ chọn ‘-keypasswd’ dùng thay ñổi mật khẩu. Tuỳ chọn 
‘-keyalg’ chỉ rõ thuật toán tạo cặp khoá. 
Khi bạn tạo một khoá và bổ sung nó vào trong keystore, bạn có thể dùng tuỳ 
chọn ‘-list’ của keytool ñể xem khoá có trong keystore hay không. 
 231 
ðể xoá cặp khoá từ cơ sớ liệu, dùng lệnh sau: 
keytool –delete –alias aliasName 
‘aliasName’ chỉ tên của khoá ñược xoá. 
Bây giờ, chúng ta tạo cặp khoá riêng/công cộng cho file JAR, chúng ta hãy ký 
danh nó. Lệnh jarsigner dùng ñể ký danh một file JAR. Nhập lệnh sau vào dấu 
nhắc DOS: 
jarsigner –keystore keyStore –storepass storePassword –keypass keyPassword 
Bảng sau cung cấp danh sách của JARFileNames và bí danh: 
Tuỳ chọn Mô tả 
keyStore Tên keystore sử dụng 
storePassword Mật khẩu keystore 
keyPassword Mật khẩu khoá riêng 
JARFileName Tên của file JAR ñược ký danh 
Alias Bí danh của bộ ký danh 
Bảng 10.2 JARFileNames và bí danh 
ðể ký danh file JAR ‘pack.jar’, với keystore ‘store’, và mật khẩu ñể lưu trữ và 
các khoá riêng là ‘password’, dùng lệnh sau: 
jarsigner –keystore store –storepass password –keypass password pack.jar pk 
‘pk’ nghĩa là tên bí danh. 
Nếu tuỳ chọn ‘-keystore’ không chỉ rõ, thì keystore mật ñịnh ñược dùng. 
ðể chỉ rõ chữ ký của file JAR ñược ñịnh danh, dùng tuỳ chọn ‘-verify’. 
jarsigner –verify pack.jar 
‘pack.jar’ chỉ tên file JAR. Nếu chữ ký không hợp lệ, thì ngoại lệ sau ñược ném 
ra (thrown). 
Jarsigner:java.util.zip.ZipException:invalid entry size (expected 900 but got 
876 bytes) 
 232 
Ngược lại, xuất hiện thông báo “jar verified” (jar ñược xác minh) 
Quá trình xác thực kiểm tra theo các bước sau: 
 Có file ‘.DSA’ chứa chữ ký hợp lệ cho file chữ ký .SF không. 
 Có các mục trong file chữ ký là các tóm lược hợp lệ cho mỗi mục tương 
ứng file kê khai (manifest file) 
10.5 Chữ ký ñiện tử (Digital Certificates) 
Cho ñến bây giờ, chúng ta ñã học cách tạo và ký danh một file JAR. Bây giờ, 
chúng ta sẽ học cách xuất các chữ ký ñiện tử (digital certificates), sẽ sử dụng ñể 
xác thực chữ ký của các file JAR. Chúng ta cũng sẽ học các nhập chữ ký ñiển 
tử từ các file các. 
Chữ ký ñiện tử là một file, một ñối tượng, hoặc một thông báo ñược ký danh 
bởi quyền chứng thực (certificate authority). The CA (Certificate authority) cấp 
chứng nhận giá trị các khoá công cộng. Chứng nhận X.509 của tổ chức 
International Standards Organization là một dạng chứng nhận số phổ biến. 
Keytool hổ trợ những chứng nhận này. 
Keytool ở bước ñầu tiên cần nhận ñược một chứng nhận (certificate). Chúng ta 
dùng chứng nhận ñó tạo cặp khoá ‘công cộng/riêng’ (private/public). Keytool 
nhập vào các chứng nhận ñã ñược tạo và ñược ký danh. Keytool tự ñộng gắn 
(bundle) khoá công cộng mới với một chứng nhận mới. Cùng thực thể ñã tạo 
khoá công cộng ký danh chứng nhận này. ðó ñược gọi là ‘self-signed 
certificates’ (Chứng nhận tự ký danh). Các chứng nhận này không phải là 
chứng nhận ñáng tin cậy cho ñịnh danh. Tuy nhiên, chúng cần ñể tạo các yêu 
cầu ký danh chứng nhận (certificate-signing request). 
Keytool và tuỳ chọn ñược sử dụng ñể tạo các chứng nhận trên. Câu lệnh sau 
giúp tạo các chứng nhận trên: 
keytool –keystore store –alias mykey –certreq –file mykey.txt 
Cặp khoá ñược tạo là ‘mykey’. Tuỳ chọn ‘-file’ chỉ tên file, mà yêu cầu ký 
danh chứng nhận dùng ñể lưu. 
Dùng lệnh ‘-export’ xuất các chứng nhận này như sau: 
keytool –export –keystore store –alias pk –file mykey 
 233 
Câu lệnh trên hiển thị dấu nhắc sau: 
Enter keystore password 
Chứng nhận ñã lưu trữ trong 
ðể nhập các chứng nhận khác vào keystore của bạn, nhập câu lệnh sau: 
keytool import –keytool keystore –alias alias –file filename 
Tên ñược chỉ như là tên file chứa chứng nhận ñược nhập vào (imported 
certificate). 
Câu lệnh sau chỉ tên bí danh là ‘alice’ ñể nhập chứng nhận trong file ‘mykey’ 
vào keystore ‘MyStore’: 
keytool –import –keystore MyStore –alias alice –file mykey 
Câu lệnh trên hiển thị dấu nhắc sau: 
Enter keystore password (Nhập vào mật khẩu keystore) 
Kết quả xuất ra hiển thị hai tuỳ chọn –Owner và Issuer. Nó hiển thị tên công ty, 
nghề nghiệp, tổ chức, ñịa ñiểm, bang và tiền tệ. Nó cũng hiển thị số serial và 
thời gian có giá trị. Cuối cùng, nó hỏi có là chứng nhận uỷ thác không. Chứng 
nhận ñược chấp thuận cho sự uỷ thác của riêng bạn. 
Dùng lệnh ‘-list’ liệt kê nội dung của keystore như sau: 
keystool –list –keystore Store 
Câu lệnh trên yêu yều password keystore 
Dùng tuỳ chọn ‘-alias’ liệt kê một mục. Dùng lệnh -delete ñể xoá bí danh trong 
keystore, như sau: 
keytool –delete –keystore Store –alias alias 
Dùng lệnh ‘-printcert’ in chứng nhận ñược lưu trữ trong file, theo cách sau: 
 234 
keytool –printcert –file myfile 
Dùng lệnh ‘-help’ nhận về danh sách tất cả các lệnh keytool hổ trợ: 
keytool -help 
10.6 Các gói bảo mật java (JAVA Security packages) 
Các gói bảo mật Java bao gồm: 
 java.security 
ðây là gói API nhân bảo mật (the core security API package). Chứa các lớp và 
giao diện (interface) hỗ trợ mã hoá (encryption), tính bảng tóm lược tài liệu và 
chữ ký ñiện tử. 
 java.security.acl 
Chứa các giao diện dùng cài ñặt các chính sách ñiều kiển truy cập 
 java.security.cert 
Cung cấp sự hổ trợ cho chứng nhận X.509 
 java.security.interfaces 
ðịnh nghĩa các giao diện truy cập thuật toán chữ ký ñiện tử (the digital 
signature algorithm) 
 java.security.spec 
Cung cấp các lớp ñộc lập và phục thuộc vào thuật toán cho các khoá. 
Tóm tắt: 
 Nếu khả năng bảo mật trong applet không ñảm bảo, các dữ liệu nhạy 
cảm có thể ñược sữa ñổi hoặc phơi bày. 
 Mục ñích chính của JAR là kết nối các file mà applet sử dụng trong một 
file nén ñơn. ðiều này cho phép các applet nạp vào trình duyệt một cách 
hiệu quả. 
 Một file kê khai (manifest file) chứa thông tin về các file lưu trữ. 
 Chữ ký ñiện tử là một mã hoá kèm với chương trình ñể nhận diện chính 
xác nơi nguồn gốc của file. 
 Keystore là một cơ sở dữ liệu của các khoá. 
 Keytool là công cụ khoá bảo mật của java. 
 chứng nhận ñiện tử là một file, hoặc một ñối tượng, hoặc một thông báo 
ñược ký danh bởi quyền chứng nhận (certificate authority) 
Kiểm tra kiến thức: 
1. File ________là file lưu trữ ñược nén. 
2. Tuỳ chọn _____, khi dùng với công cụ jar, trích rút tên file từ một lưu 
 235 
trữ (file) 
3. JAR tự ñộng tạo file kê khai, thậm chí nó không ñược chỉ ra
 true/false 
4. Thuộc tính______,khi dùng trong thẻ applet, chỉ cho trình duyệt nạp file 
jar lưu trữ cụ thể, và tìm file class ñược nhập vào. 
5. Trong chữ ký ñiện tử, _______ñược dùng cho mã hoá và 
_________ñược dùng cho giải mã. 
6. Tất cả các thông tin keytool quản lý, ñược lưu trữ trong một cơ sở dữ 
liệu gọi là _______ 
7. keytool ở bước ñầu tiên cần nhận ñược một chứng nhận 
 true/false 
8. Gói _______chứa giao diện (interfaces) dùng cài ñặt các chính sách ñiều 
kiển truy cập. 
Bài tập: 
Tạo các câu lệnh java thực hiện các hành ñộng sau: 
1. Tạo một file jar ‘core-java.jar’ chứa các file lớp (class file) và các file 
nguồn. 
2. Liệt kê nội dung của file jar. 
3. Tạo file html cho file CardLayoutDemo.class,file lớp ñược chứa trong 
file jar. 
4. trích rút (extract) file jar 
5. Dùng lệnh keytool với tên bí danh và keystore ñể tạo ra cặp khoá công 
cộng/riêng mới 
6. Ký danh file jar mới ñược tạo 
7. Xác minh chữ ký (signature). 
8. Xuất các chứng nhận (certificate) 
9. Liệt kê nội dung của keystore 
10. In các chứng nhận ñược lưu trong file. 

File đính kèm:

  • pdfCore Java - Chương 1_Lập trình hướng đối tượng.pdf
Tài liệu liên quan