VicoTas
Câu hỏi
Hương ngocanh123456
25/05/2013 20:37

Xin hướng dẫn cách mã hóa 1 trường (cột) trong 1 bảng FoxPro để không cho người ngoài xem được nội dung?



Danh sách câu trả lời (1)
Nguyễn Văn Siêu xmen2010 25/05/2013 20:37
Bạn có thể dùng giải thuật mật mã hóa/giải mật nào mà bạn thích (phụ thuộc vào mục tiêu mà bạn muốn đạt được). Có 2 loại mật mã hóa: mật mã hóa đối xứng (hay bí mật) và mật mã hóa bất đối xứng (hay công khai). Do tính chất đã biết của từng loại mật mã hóa mà người ta thường dùng loại mật mã hóa bí mật để mật mã hóa dữ liệu được lưu và xử lý cục bộ, thí dụ như mã hóa 1 hay nhiều trường dữ liệu của bạn. Có rất nhiều giải thuật mật mã hóa bí mật khác nhau, tính chất chung của chúng là dùng 2 khóa: 1 khóa để mật mã và 1 khóa để giải mã, nhưng nếu biết 1 trong 2 khóa ta sẽ suy ra được khóa kia dễ dàng. Tuỳ thuộc vào độ dài khóa và giải thuật mật mã cụ thể mà mức độ tin cậy, an toàn cao hay thấp. Để cho bạn 1 cái nhìn sơ khởi ban đầu, chúng tôi xin giới thiệu giải thuật mật mã hóa rất đơn giản sau đây để mã hóa chuỗi dữ liệu trong password. Ta chọn khóa mật mã là 1, và hàm mật mã là cộng khóa mã vào từng ký tự của password, kết quả là 1 chuỗi có cùng độ dài nhưng nội dung từng ký tự đã tăng 1 đơn vị. Giải thuật này được hiện thực bởi hàm EnCrypt() bằng C++ như sau:

void Encrypt(char* pass, char* enpass, int len) {
int i;
for (i=0; i < strlen(pass); i++)
enpass = pass+1;
enpass = 0; 'kết thúc chuỗi
}
Với hàm và khóa mật mã như trên ta có thể suy ra khóa giải mật là -1 và hàm giải mật giống y như là hàm mật mã. Cụ thể giải thuật giải mã được hiện thực bởi hàm DeCrypt() bằng C++ như sau:
void Decrypt(char* pass, char* enpass, int len) {
int i;
for (i=0; i < strlen(pass); i++)
pass = enpass-1;
pass = 0; 'kết thúc chuỗi }

Dĩ nhiên với hàm mật mã đơn giản cũng như độ dài khoá quá ngắn như trên thì kết quả mật mã hóa có độ an toàn, bảo mật không cao, nhưng qua đó bạn sẽ thấy rõ hơn về việc mật mã hóa và giải mật dữ liệu.

Tóm lại, muốn mật mã hóa 1 trường (hay nhiều trường) của 1 database, trước khi lưu dữ liệu lên database, bạn phải mật mã hóa dữ liệu từ dạng rõ sang dạng mật. Ngược lại, trước khi dùng lại trường đó, bạn phải đọc từ database rồi gọi hàm giải mật. Như vậy, những ai không biết điều này mà truy xuất thẳng database, họ chỉ nhận được dữ liệu ở dạng mật nên không thể dùng đúng thông tin được.
Trả lời câu hỏi
Tải lại mã
Câu hỏi lĩnh vực Lập trình
nophoto Cho hỏi 3 ngôn ngữ lập trình C, C++ và C# khác nhau chỗ nào?

Đăng lúc: 20:37 - 25/05/2013 trong Lập trình

nophoto Xin hướng dẫn lập trình VB6 chặn các thông tin gửi từ máy tính lên mạng. Nếu chặn được thì có thể thay đổi thông tin đó không?

Đăng lúc: 20:37 - 25/05/2013 trong Lập trình

nophoto Có 1 số OCX hay DLL hỗ trợ đọc barcode, tôi có thể lập trình thử nghiệm mà không cần có máy đọc barcode được không?

Đăng lúc: 20:37 - 25/05/2013 trong Lập trình

nophoto Xin hỏi các đoạn script được “giấu” bằng cách nào?

Đăng lúc: 20:37 - 25/05/2013 trong Lập trình

nophoto Xin hướng dẫn cách kết nối CSDL MySQL từ chương trình VC# trong môi trường Visual Studio 2005?

Đăng lúc: 20:37 - 25/05/2013 trong Lập trình

nophoto Xin hướng dẫn cách "comment" một đoạn lệnh trong VB?

Đăng lúc: 20:37 - 25/05/2013 trong Lập trình

nophoto Khi chạy chương trình VB6.EXE thì bị tắt ngay (hiện lên cửa sổ rồi tự động tắt). Cố gắng mở liên tục thì chạy được?

Đăng lúc: 20:37 - 25/05/2013 trong Lập trình

nophoto Xin hướng dẫn kỹ thuật Override hàm API trong WinXP, ví dụ Override hàm SetSystemTime hoặc SetLocalTime của Windows bằng Delphi?

Đăng lúc: 13:47 - 08/07/2013 trong Lập trình

Link Phiên bản VB.Net mới nhất?

Đăng lúc: 20:37 - 25/05/2013 trong Lập trình

nophoto Em đang học lập trình hệ thống bằng hợp ngữ và C. Nhờcác anh/ chị giới thiệu một số tài liệu để tham khảo?

Đăng lúc: 20:37 - 25/05/2013 trong Lập trình

nophoto Sự kiện WM_LBUTTONUP là thả chuột trái, WM_LBUTONDOWN là nhấn chuột trái... Vậy có cách nào để hủy sự kiện nhấn và thả chuột không?

Đăng lúc: 20:37 - 25/05/2013 trong Lập trình

nophoto Trong lập trình VB, khi nhấn phím Enter, focus sẽ tự động nhảy sang control có index kế tiếp?

Đăng lúc: 20:36 - 25/05/2013 trong Lập trình

nophoto Xin giải thích từng toán tử trong ngôn ngữ VB 6.0 bao gồm toán tử số học, toán tử so sánh, toán tử logic?

Đăng lúc: 20:36 - 25/05/2013 trong Lập trình

nophoto Xin hướng dẫn cách tạo form có giao diện WinXP trong VB6?

Đăng lúc: 17:05 - 22/07/2013 trong Lập trình

nophoto Trong VB 6.0, có cách nào làm cho nội dung của textbox có nhiều màu sắc khác nhau?

Đăng lúc: 20:36 - 25/05/2013 trong Lập trình

nophoto Xin hướng dẫn viết chương trình đọc dữ liệu (điện áp, tốc độ động cơ...) từ cổng COM ?

Đăng lúc: 20:36 - 25/05/2013 trong Lập trình

nophoto Xin hướng dẫn lập trình VB 6 lấy dữ liệu trọng lượng từ cân điện tử bên ngoài (cân điện tử có nhiều cổng: COM, USB...)?

Đăng lúc: 20:36 - 25/05/2013 trong Lập trình

Hương Xin hướng dẫn viết chương trình chat cho phép gởi hình mặt cười từ server sang client bằng DHTML control ?

Đăng lúc: 20:36 - 25/05/2013 trong Lập trình

nophoto Để chạy 1 chương trình viết bằng các ngôn ngữ .Net (cụ thể là VB.Net), máy tính bắt buộc phải có cài Net Framework?

Đăng lúc: 20:36 - 25/05/2013 trong Lập trình

nophoto Xin hướng dẫn hiện thực thuật giải Huffman bằng ngôn ngữ Pascal???

Đăng lúc: 23:33 - 26/06/2013 trong Lập trình

Rao vặt Siêu Vip