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

Phương pháp mã hóa và giải mã

2 1,2K 3
Tài liệu đã được kiểm tra trùng lặp

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 2
Dung lượng 56,5 KB

Nội dung

Select Between/Not between

Trang 1

Một phương pháp mã hoá và giải mã văn bản dạng text

Võ Công Chương

Phương pháp mã hoá văn bản mà tôi sắp nêu ra sau dây cũng là một trong những

phương pháp mã hoá thông thường, hy vọng nó sẽ là một phương pháp mới trong sổ tay lập trình của các bạn yêu Tin học

Trong phương pháp này, văn bản cần mã hoá hay giải mã của chúng ta là một dãy kí tự

Tuỳ thuộc vào khoá (keyID: là một số nguyên kiểu longInt) do chúng ta đưa vào mà kết

quả của phương pháp sẽ khác nhau Điều này nghĩa là nếu văn bản được mã hoá theo một khoá nào đó thì khi giải mã ta cũng phải dùng lại ngay chính khoá đó Do vậy, mặc dầu phương pháp mã hoá này ai cũng biết nhưng họ chỉ giải mã được văn bản đã được mã hoá một khi họ biết được khoá dùng để mã hoá văn bản ấy Mô hình mã hoá và giải mã được biểu diễn như hình 1

Nhận xét: Ta cũng có thể mã hoá văn bản của ta qua N lần bởi N khoá khác nhau Khi

đó, công việc giải mã phải làm ngược lại, nghĩa là phải giải mã N lần với N khoá tương ứng đã dùng Biểu diễn quá trình này ở hình 2

Như vậy, ta phải có hai hàm, hàm thứ nhất dùng để mã hoá, hàm thứ hai dùng để giải mã Tuy nhiên, trong hàm mà tôi cài đặt sau đây nó đảm nhận cả hai chức năng trên (Bạn hãy

để ý toán tử Xor trong giải thuật) Giải thuật trong hàm này không có gì phức tạp Toàn

bộ mã nguồn của hàm được cài đặt trong VB như sau:

Function MyEncrypt(MyStr As String, keyID As Long) As String

′Vào: MyStr là văn bản cần mã hoá hay giải mã

′ keyID là khoá dùng cho việc mã hoá hay giải mã

Trang 2

′Ra: Trả lại văn bản đã được mã hoá/giải mã

Dim i As Integer

Dim stepNum As Integer

Dim keyIDtmp As Integer

Dim tmp As String

Dim ch As String

Dim byteArray() As Byte

tmp = Trim$(Str(keyID))

keyID = 0

For i = 1 To Len(tmp)

keyID = keyID + CLng(Mid(tmp, i, 1))

Next i

While (keyID > 255)

keyID = -1 + (keyID - 255)

Wend

ReDim Preserve byteArray(Len(MyStr))

For i = 1 To Len(MyStr)

byteArray(i) = Asc(Mid(MyStr, i, 1))

stepNum = keyID + i

While (stepNum > 255)

stepNum = -1 + (stepNum - 255)

Wend

byteArray(i) = byteArray(i) Xor CByte(stepNum)

Next i

tmp = ″ ″

For i = 1 To Len(MyStr)

tmp = tmp & Chr(byteArray(i))

Next i

MyEncrypt = tmp

End Function

Từ nay, sau khi có được phương pháp mã hoá này, chúng ta sẽ trao đổi tài liệu mật cho nhau mà không sợ bị người khác đọc được Tất nhiên, hai người trao đổi tài liệu đó phải qui định khoá dùng cho cho công việc mã hoá và giải mã tài liệu của mình

Ngày đăng: 11/09/2012, 13:53

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w