Thử sức với bài test phỏng vấn

Chào các bạn!
Tình hình là tuần vừa rồi mình vừa đi pv tại một cty. Sau buổi pv thì mình có nhận được 1 bài test đại loại như sau:
Cho 1 đoạn text đã bị mã hóa, các bạn tìm cách để giải mã và tìm ra đoạn văn bản gốc.
Ko có yêu cầu hay giới hạn gì đặc biệt, các bạn có thể dùng mọi ngôn ngữ, hay là tool hỗ trợ chỉ cần miêu tả lại cách giải quyết vấn đề, source code kèm theo nếu có và quan trọng là đáp án của bài toán.
Bài test đưa ra một gợi ý là họ dùng trang này để mã hóa đoạn văn bản gốc
https://applyatappsfactory.azurewebsites.net/Test/Encode

Nếu các bạn có thời gian thì vào thảo luận cho vui nhé
Và đây là đoạn văn đã bị mã hóa.

677B783356C28575407A7C6B5E1D1D5D597B426B6B336A59757D5E426B5E33C289596B335A5978777B781D6A7B593AC28633C2857CC2877C6B5E33C28659337542777833C28A7B78C2857833C28A7C6BC287C286337F7559C28A33C28A7C75C287331D4477337CC28633777B78337D42777B78C285335EC28542C286547C6B5E337B7CC28633C2887B7C75C2874E331D5B78337B5975C287C28633777B78337F59C28C3378607FC28542C28878C287337C6B337B7CC2863342C285603F331D5B7833C2887542C28654C286337B7C6033C2866B765E75C28C3F337B78337E787854C286337B7C6033C28A42C28560411D1D35C280C28C33C286596B3F33C28A7BC28C33C28859C28978C28533C28C5976C285337D42C28878337C6B33C28676C2887B337D7842C2855235331D356C597633C286787833777B783378757D407E7C6B5E3F337D42777B78C28552331D5B783AC286336B7842C2854D33677B78337E7C6B5E33597D33777B78337875C28978C28633C28A7C777B33C288C28559C28A6B33426BC2873377C285427C6B4D35331D35C280C28C33C286596B3F33777B7833607CC28677337CC28633596B33777B78335475427C6B41351D1D3A65C28A787877337542C2873F335933C28859607833426BC2873379597C6B3360783F33C287594D331D6576C2887B3354C285787777C28C335E426078C286334433C28A7C757533547542C28C33C28A7C777B33C28C59764E331D626B33777B7833C2867B59C28578335E42C28C337D7559C28A78C285C28633777B787CC28533C288597559C28533766B7D5975C2873F331DC280C28C336059777B78C285337B42C2863360426BC28C335E42C28560786B77C28633597D335E5975C287413A1D1D35C280C28C337D42777B78C2853F3360C28C337D42777B78C2853F33426BC28733C288426B33C28C5976336B5977337B7842C285331D677B783354C28559607CC2867833777B783378757D407E7C6B5E337FC2857842777B78C286337C6B3360C28C337842C2855235331D35557833C2884275603F33C2867742C28C33C2884275603F3360C28C33C2887B7C75C2873F33757C78337559C28A34331D446B33C28A7C777B78C28578C28733757842C28978C28633777B78336B7C5E7B7740C28A7C6BC287C286337F7559C28A41351D1D3A6A7C757533C28C59763F33C286C28A787877337542C2873F33C288596078334275596B5E33C28A7C777B33607852331DC280C28C33C28742765E7B7778C285C28633C2867B42757533C28842C28578337D59C28533C28C59763377786BC28778C28575C28C4E331D446B33777B78336B7C5E7B773360C28C33C28742765E7B7778C285C28633777B787CC28533C28578C2897875C285C28C337E7878543F331D677B78C28C3A757533C28559C2887E33C28C597633426BC28733C287426BC2887833C28C597633426BC28733C2867C6B5E33C28C597633775933C28675787854413A1D1D35C280C28C337D42777B78C2853F3360C28C337D42777B78C2853F335933C288426B33C28C5976336B59773377C28542C28878331D677B783378757D407E7C6B5E3AC28633C28742765E7B7778C285C286337C6B33777B4277335E75595960C28C33547542C288785235331D35C280C28C33C286596B3F3360C28C33C286596B3F334433C2867878337C7733C288757842C285331D5B59C28A335EC28578C28C33777B7833426BC2887C786B7733C28A7C757559C28AC286334254547842C28541351D1D3A44337559C2897833C28C59763F33C28C5976C28533C288596078757C6B78C286C28633C2887B42C28560C2863360783F3360C28C337F59C28C4D331DC2836BC287337C7D33C28C59763AC28578336B597733C28A7C75757C6B5E3F3360C28C337D59C285C2887833443A7575337860547559C28C413A331D356159C28A337D42777B78C2853F336B59C28A337D42777B78C2853F337B783AC28633C286787CC3977C6B5E3360C28C3342C2856041331D56757D407E7C6B5E337B42C28633C287596B78336078334233C288C285767875337B42C2856041351D1D677B78337D42777B78C28533C2867B76C287C28778C285C2863F337B7CC28633C2857CC28778337CC28633C28A7C75C2873F331D446B337B7CC2863342C28560C286337B783AC286337B5975C2877C6B5E33777B78335EC28559426B7C6B5E33C2887B7C75C2873F331D667842C2887B78C28633777B7833C2885976C2857733C28A7C777B3377597C7533426BC28733C287C2857842C287413340331D677B7833C2887B7C75C287337B78337B7875C287337C6B337B7CC2863342C28560C28633C28A42C28633C2877842C287411D1D404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040401D1D587BC48DC2883360E1BBBE6B5E337FE1BAB46B33C4A4C3B6335E7CE1BAB67C33C28476C28CE1BB927733C4A4C783E1BBB6C28833C288C3B57633C4A4E1BBA4413355C3B5C28C335E7CE1BBB033777BC3BF33C2847642C28C3377C285E1BBB23375E1BAB47C33C28742C28C6B7B42767B59C28833C289C3B333777BE1BAB659337576E1BB806B33C289E1BB941DC288C3B4C2887B3375C3B36033C288E1BBBA42337FE1BAB46B336BC3B35941

1 Like

Test input aaaaaa -> ra 424242424242
Vậy đoán được là nó thay thế a = 0x42
Bây giờ đơn giản nhất thì cứ việc in hết bảng chữ cái ra. Bỏ vô input và sinh ra output là được map table. Từ đó decode là ra. :3

Và kq là một bài thơ. Có đoạn text của bạn chèn vào bằng unicode nên bị trống vài chỗ :smiley:

</https://pastebin.com/9DKwKKpY>

9 Likes

Như vậy thì tù quá …

2 Likes

Công nhận tù thật :3
Nhưng mình thử tìm quy luật thì có vẻ nó dạng map 1-1 nên thôi đành tạm bợ vậy :smiley:

Code của mình: https://pastebin.com/9DKwKKpY

Hóng cách giải hay hơn OvOb

3 Likes

Quy luật tác giả đưa ra khá là “lung tung”, mò mẫm khá mất thời gian :smile:

Khi sort theo mã:

  • Dải mã từ E1BAB3 đến E1BC84 (các mã to nhất): biểu diễn các kí tự tiếng Việt có dấu, theo thứ tự hoa - thường - hoa - … liên tục, các kí tự cũng được sắp xếp theo mã Unicode. Chắc tại vì tác giả lười nên gán toàn bộ các kí tự mà không buồn đổi thứ tự vào dải mã này.
  • Dải mã từ C280 đến C783: biểu diễn 1 số kí tự tiếng Việt có dấu đơn giản, các kí tự có móc (ă, â, ư, ơ, đ) và 1 số kí tự trong bảng chữ cái tiếng Anh.
  • Dải mã từ 1D đến 7F: 1 số kí tự trong bảng chữ cái tiếng Anh, các dấu chấm câu, dấu cách và dấu xuống dòng.

Về cơ bản, các kí tự trong bảng chữ cái tiếng Anh được sắp xếp rất hỗn độn, hoa thường lẫn lộn.

[spoiler]Cái hay của tác giả là khiến người ta tưởng như có quy luật rồi nhưng mà cuối cùng phát hiện ra là chẳng có gì cả :v[/spoiler]

1 Like

Cách này thì đúng kiểu KISS :sweat_smile:

Gợi ý tí là có map 1-1 và letter swap (kiểu C thành E và ngược lại )

1 Like

Cảm ơn bạn nha. Mình decode xong đoạn kia rồi, giờ mình đang ngồi mò mẫm quy luật đây.

Tác giả “ác” quá :joy:

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?