01/10/2018, 12:03

[Góc phỏng vấn] 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

*grab popcorn* viết 14:16 ngày 01/10/2018

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ỗ

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

Vesper Link viết 14:19 ngày 01/10/2018

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

*grab popcorn* viết 14:09 ngày 01/10/2018

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

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

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

HK boy viết 14:08 ngày 01/10/2018

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

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]

Quy Nguyen Lam viết 14:08 ngày 01/10/2018

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

Quy Nguyen Lam viết 14:13 ngày 01/10/2018

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

HK boy viết 14:18 ngày 01/10/2018

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á

Bài liên quan
0