Yêu cầu thg 11 23, 2023 1:08 SA 163 0 1
  • 163 0 1
+1

Ylf vcs ck lfgcs iyk Xin chào, có ai giúp em giải mật mã này được không ạ?

Chia sẻ
  • 163 0 1

Ylf vcs ck lfgcs iyk

Xin chào, có ai giúp em giải mật mã này được không ạ?

1 CÂU TRẢ LỜI


Đã trả lời thg 11 23, 2023 1:44 SA
Đã được chấp nhận
+15

Đọc qua đoạn output ở trên thì một idea có thể nghĩ đến đầu tiên là Ceasar cipher. Đây là một phương pháp mã hóa cổ điển, nó được đặt theo tên của Julius Caesar, người đã sử dụng nó trong các thông điệp bí mật của mình.

Trong Caesar cipher, mỗi chữ cái trong văn bản gốc sẽ được dịch chuyển một số lượng cố định vị trí trong bảng chữ cái để tạo ra văn bản mã hóa.
Ví dụ, nếu chúng ta dịch chuyển mỗi chữ cái 3 vị trí về phía trước trong bảng chữ cái tiếng Anh, thì 'A' sẽ trở thành 'D', 'B' sẽ trở thành 'E', v.v. Khi chúng ta đến cuối bảng chữ cái, chúng ta sẽ quay lại từ đầu. Vì vậy, 'X' sẽ trở thành 'A', 'Y' sẽ trở thành 'B', và 'Z' sẽ trở thành 'C'.
Để giải mã một thông điệp đã được mã hóa bằng Caesar cipher, chúng ta chỉ cần dịch chuyển các chữ cái theo hướng ngược lại. Trong ví dụ trên, chúng ta sẽ dịch chuyển mỗi chữ cái 3 vị trí về phía sau.

Bạn có thể brute force đoạn text ở trên, thử nghiệm nó với tất cả các khả năng, dịch chuyển từ 1, 2, 3 ... rồi đến 25 vị trí, để xem có ra được kết quả nào trông có vẻ có nghĩa không 😂

Ví dụ như dưới đây là một đoạn code python đơn giản để làm việc đó:

def caesar_decrypt(text, shift):
    decrypted_text = ""
    for char in text:
        if char.isalpha():
            ascii_offset = ord('a') if char.islower() else ord('A')
            decrypted_char = chr((ord(char) - ascii_offset - shift) % 26 + ascii_offset)
            decrypted_text += decrypted_char
        else:
            decrypted_text += char
    return decrypted_text

text = "Ylf vcs ck lfgcs iyk"
for shift in range(1,26):
    print(shift, caesar_decrypt(text, shift))

Và dưới đây là kết quả khi chạy:

1 Xke ubr bj kefbr hxj
2 Wjd taq ai jdeaq gwi
3 Vic szp zh icdzp fvh
4 Uhb ryo yg hbcyo eug
5 Tga qxn xf gabxn dtf
6 Sfz pwm we fzawm cse
7 Rey ovl vd eyzvl brd
8 Qdx nuk uc dxyuk aqc
9 Pcw mtj tb cwxtj zpb
10 Obv lsi sa bvwsi yoa
11 Nau krh rz auvrh xnz
12 Mzt jqg qy ztuqg wmy
13 Lys ipf px ystpf vlx
14 Kxr hoe ow xrsoe ukw
15 Jwq gnd nv wqrnd tjv
16 Ivp fmc mu vpqmc siu
17 Huo elb lt uoplb rht
18 Gtn dka ks tnoka qgs
19 Fsm cjz jr smnjz pfr
20 Erl biy iq rlmiy oeq
21 Dqk ahx hp qklhx ndp
22 Cpj zgw go pjkgw mco
23 Boi yfv fn oijfv lbn
24 Anh xeu em nhieu kam
25 Zmg wdt dl mghdt jzl

Trong đó có một kết quả này là có vẻ có ý nghĩa nhất là 24 Anh xeu em nhieu kam, mặc dù nếu đúng là thế, thì tức là có 2 vị trí bị sai chính tả 😂 Không rõ là lúc mã hóa người muốn gửi message xử lý lỗi, hay do bạn khi viết đoạn text lên đây bị lỗi nữa, bạn thử kiểm tra lại xem sao 😄

Có vẻ với kết quả này thì hướng đi theo Ceasar cipher là đúng, hy vọng là như vậy 😄

Chia sẻ
thg 11 23, 2023 6:35 SA

Bảng ký tự: "ABCDEFGHIKLMNOPQRSTUVXYZ"

Độ lệch: 2

Ylf vcs ck lfgcs iyk => Anh yeu em nhieu lam

thg 11 23, 2023 9:05 SA

@vungnho cảm ơn ông nhiều nhen

Avatar Tran Duc Thang @thangtd90
thg 11 23, 2023 12:08 CH

@vungnho Bảng ký tự này thiếu mất chữ JW nhỉ 😂

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí