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

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

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

Thông tin tài liệu

Select Between/Not between

Một phương pháphoá giải văn bản dạng textVõ Công ChươngPhương pháp hoá văn bản tôi sắp nêu ra sau dây cũng là một trong những phương pháp 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 hoá hay giải 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 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 hoá theo một khoá nào đó thì khi giải ta cũng phải dùng lại ngay chính khoá đó. Do vậy, mặc dầu phương pháp hoá này ai cũng biết nhưng họ chỉ giải được văn bản đã được hoá một khi họ biết được khoá dùng để hoá văn bản ấy. Mô hình mã hoá giải được biểu diễn như hình 1. Nhận xét: Ta cũng có thể 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 phải làm ngược lại, nghĩa là phải giải 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 để hoá, hàm thứ hai dùng để giải mã. Tuy nhiên, trong hà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ộ 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 hoá hay giải mã. ′ keyID là khoá dùng cho việc hoá hay giải mã. ′Ra: Trả lại văn bản đã được 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 hoá này, chúng ta sẽ trao đổi tài liệu mật cho nhau 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 hoá giải tài liệu của mình. . phương pháp mã hoá và giải mã văn bản dạng textVõ Công ChươngPhươ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ã. 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ã. ′Ra: Trả lại văn bản đã được mã hoá /giải mã. Dim

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

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan