S
CÁC LOẠI MẬT MÃ THAY THẾ KHÁC NHAU
Trước đây hơn 20 thế kỷ, khu vực Trung Đông lúc bấy giờ có nền văn minh nổi bậc nhất thế giới;
Người ta đã biết mã hóa những mệnh đề cần thiết gởi cho người cần biết í nghĩa thực về nó (Còn những người khác, tuy có đọc nó cũng không biết í nghĩa thực của đoạn văn bản là gì)
Để làm được điều đó thời bấy giờ, người ta dùng các chữ cái khác thay thế cho các chữ cái trong mệnh đề;
Để các bạn dễ hình dung, ta lấy vì dụ ta có mệnh đề: "TRI THUC LA SUC MANH" (Mệnh đề A)
Đó là mệnh đề do dùng ngôn ngữ tạo bỡi các chữ cái
"ABCDEFGHIJKLMNOPQRSTUVWXYZ" (Bảng chữ cái) tạo ra;
Nhưng để bí mật mệnh đề này với hầu hết mọi người, tác giả hẹn ước với người nhận thư tín (người được fép đọc nó) với nhau là tôi đã thay chữ cái 'A' là kí tự 'F', 'B' bằng 'G', & cứ thế tiếp tục,. . . .
Có nghĩa là người này dùng các chữ cái
"VWZXYABCDEFGHIJKLMNOPQRSTU" (Bảng mã hóa) để thay tương tứng
Như vậy mệnh đề A sẽ được thể hiện như vầy: "OMD OCPX GV NPX HVIC"
Chú í ta sẽ thấy chữ 'O' ở dòng thuộc bảng mã hóa trùng cột với kí tự 'T' của bảng chữ cái & chữ 'C' tương ứng với 'H' của bảng chữ cái,. . . . .
Nhưng người xưa người ta dò bằng tay để lấy ra những kí tự tương ứng & thay thế;
Giờ mà làm chuyện như vậy, tổ tiên sẽ cười chúng ta là cái chắc!
Vậy nên để mã hóa 1 văn bảng dài, ta đem nó đưa lên các dòng của excel & xài hàm sau để mã hóa cũng như giải mã (chu trình ngược lại với việc mã hóa) các đoạn văn bản:
Mã:
Option Explicit
[B]Function MaHoa5(StrC As String, Optional Thuan As Boolean = True) As String[/B]
Const Alf As String = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
Const Khoa As String = "VWXYZ" & Alf
Dim J As Long, I As Long, VTr As Long
For J = 1 To Len(StrC)
VTr = InStr(IIf(Thuan, Alf, Khoa), Mid(StrC, J, 1))
If VTr > 0 Then
MaHoa5 = MaHoa5 & Mid(IIf(Thuan, Khoa, Alf), VTr, 1)
Else
MaHoa5 = MaHoa5 & " "
End If
Next J
[B]End Function[/B]
Chúc các bạn vui vẻ!