Mã hóa ROT 13

ROT13 (rotate by 13 places) khi dịch ra tiếng việt tôi tạm gọi là phương pháp mã hóa xoay vòng 13 vị trí. Nó là một dạng đơn giản của họ cá...

ROT13 (rotate by 13 places) khi dịch ra tiếng việt tôi tạm gọi là phương pháp mã hóa xoay vòng 13 vị trí. Nó là một dạng đơn giản của họ các phương pháp mã hóa văn bản thô (plain text) bằng cách thay thế dữ liệu đơn vị (kí tự, nhóm kí tự) trong văn bản bằng những đơn vị kí tự khác. Các đơn vị kí tự dùng mã hóa trong tình hướng này được gọi là ciphertext, còn nhóm các phương pháp vừa đề cập thì sẽ được gọi là substitution cipher.
Phương thức mã hóa ROT 13 được thực hiện dựa trên thứ tự của bảng chử cái trong tiếng anh. Một kí tự sẽ được mã hóa bằng cách sử dụng kí tự sau nó 13 vị trí để thay thế cho nó. Khi giải mã thì ta chỉ cần làm tương tự như quá trình mã hóa, tức là cứ tiếp tục nhảy 13 vị trí tiếp theo, nếu tới cuối bảng chử cái thì đếm tiếp từ đầu bảng. Như vậy ROT13(ROT13(x)) = x với x là kí tự bất kì trong bảng chử cái. Việc mã hóa và giải mã cũng có thể thực hiện nhờ bảng tra (lookup table) được tạo sẵn dựa vào nguyên tắc trên như sau:
Khi đó chúng ta dễ dàng thấy rằng A sẽ được mã hóa thành N và B sẽ thành O. Với một chuỗi văn bản HELLO chúng ta sẽ có kết quả sau mã hóa là URYYB, không thể được hiểu bởi con người.


Như bạn có thể dễ dàng nhận ra, đây là phương pháp mã hóa rất sơ khai, tính bảo mật của nó hầu như không có, Chính vì thế mà thông thường người ta chỉ sử dụng phương pháp này trong các trò chơi như là đố chử, các bài kiểm tra IQ. Tuy nhiên qua bài viết này tôi mong muốn các bạn có một chút cảm nhận về mã hóa và hãy sữ dụng ý tưởng về quy tắc thay thế xoay vòng để áp dụng cho nhiều trường hợp ứng dụng khác trong quá trình phát triển ứng dụng.

Binh Nguyen - Bioz


COMMENTS

BLOGGER: 7
  1. Cảm ơn anh! Anh có biết cách nào viết chương trình ứng dụng để mã hóa chuỗi tiếng Việt dạng text không?

    ReplyDelete
  2. anh ko hiểu chuỗi tiếng Việt sang text là sao? tuy nhiên thì để làm với tiếng Việt em cần tìm hiểu về:

    - cách xử lý mã unicode trong một ngôn ngữ lập trình mà em muốn viết.
    - Phương pháp mã hóa em muốn để áp dụng.

    thông thường các hàm mã hóa cơ bản bao giờ cũng có sẵn trong các framework như .net hay opensource và chúng làm việc với unicode có nghĩa là với cả tiếng việt.

    Thông thường

    ReplyDelete
  3. Anh có tài liệu nói về cách xử lý mã unicode trong ngôn ngữ lập trình C# không ạ? Nếu có anh gửi cho em được không ạ?

    ReplyDelete
  4. trong .net hầu như unicode đã được hỗ trợ tích hợp. Vấn đề chỉ là dùng như thế nào và cấu hình dự án, thiết lập property ra sao thôi. Em cần xác định mục tiêu muốn làm gì rồi search sẽ thấy nhiều, ví dụ : search với từ khóa unicode c#.

    http://csharpindepth.com/Articles/General/Unicode.aspx

    có thể xem cái này cho vui :)

    ReplyDelete
  5. Anh có thể giúp em code bài này đc không ạ?
    Giả sử em có một chuỗi bất kỳ ví dụ: aoabcoeoed
    Em muốn loại bỏ ký tự o ở vị trí thứ 2 và 8 trong chuỗi vì nó đứng giữa hai ký tự giống nhau.
    Với chuỗi bất kỳ em muốn loại bỏ ký tự o mà đứng giữa hai ký tự giống nhau.
    Em cám ơn anh nhiều ạ.

    ReplyDelete
  6. giãi bài này gồm 2 bước:
    - tìm vị trí cần bỏ: duyệt chuỗi, nếu kí tự thứ [i] = o thì kiểm tra [i-1] và [i+1] có giống nhau không nếu giống nhau thì [i] là vị trí cần bỏ.
    - loại bỏ phần tử [i] bằng cách dồn các phần tử từ [i+1]... lên 1 ví trí rồi gán vị trí [length - 1] = '\0'; length = length - 1;
    - lặp lại 2 bước trên cho tới khi duyệt hết chuỗi.

    -> đây chỉ là một bài tập nhỏ em nên động não mà làm, tại sao lại có thể có một yêu cầu phi lí tới vậy. Nếu e là sinh viên CNTT thì anh khuyên em 1 là nên bỏ nghề đi 2 là nên thay đổi thái độ học tập. Nếu em không phải chuyên ngành CNTT thì hãy chú ý đầu tư nhiều hơn và hãy sửa câu hỏi lại là: anh vui lòng giúp gợi ý cho em cách giải quyết thay vì kêu anh làm bài giùm em em gái ạ!?

    ReplyDelete
chia sẻ cho chúng tôi ý tưởng hay khó khăn của bạn ...

Name

Chuyên Đề,5,Computer Vision,17,Data Mining,2,Dữ Liệu Test,6,Hệ Thống Nhúng,12,Kiến Thức Nền,17,Lập Trình,22,Mã Hóa,3,Mã Nguồn Mở,3,MySQL,1,Ngôn Ngữ C,7,Ngôn Ngữ PHP,3,Nhiếp Ảnh,7,OpenCV,8,Phân Vùng,3,Raspberry Pi,7,Sắp Xếp,9,Tài Liệu,29,Thông Báo,2,Thuật Toán,30,Tìm Kiếm,2,tips,4,Triển Khai,32,Xác Suất,4,Xử Lý Âm thanh,1,Xử Lý Ảnh,27,Ý Tưởng,5,
ltr
item
S3LAB.: Mã hóa ROT 13
Mã hóa ROT 13
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjytbQ5gIjj9HMrgl9DzJUcvU357Yq1z1mM7SPZUBCHZif3ZHrtva_HprBZ27rX8lkNSr17BAD2T48CSgt7cdZ3Bd2y6kRN_Ywd8aDplQWNZ5W8TXHAX6eRYFZAKAtY4en9avSeOvSQOUMO/s400/1-26-2010+1-28-17+AM.png
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjytbQ5gIjj9HMrgl9DzJUcvU357Yq1z1mM7SPZUBCHZif3ZHrtva_HprBZ27rX8lkNSr17BAD2T48CSgt7cdZ3Bd2y6kRN_Ywd8aDplQWNZ5W8TXHAX6eRYFZAKAtY4en9avSeOvSQOUMO/s72-c/1-26-2010+1-28-17+AM.png
S3LAB.
http://s3lab.sectic.com/2011/01/ma-hoa-rot-13.html
http://s3lab.sectic.com/
http://s3lab.sectic.com/
http://s3lab.sectic.com/2011/01/ma-hoa-rot-13.html
true
708158252392514934
UTF-8
Loaded All Posts Not found any posts VIEW ALL Readmore Reply Cancel reply Delete By Home PAGES POSTS View All RECOMMENDED FOR YOU LABEL ARCHIVE SEARCH ALL POSTS Not found any post match with your request Back Home Sunday Monday Tuesday Wednesday Thursday Friday Saturday Sun Mon Tue Wed Thu Fri Sat January February March April May June July August September October November December Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec just now 1 minute ago $$1$$ minutes ago 1 hour ago $$1$$ hours ago Yesterday $$1$$ days ago $$1$$ weeks ago more than 5 weeks ago Followers Follow THIS PREMIUM CONTENT IS LOCKED STEP 1: Share to a social network STEP 2: Click the link on your social network Copy All Code Select All Code All codes were copied to your clipboard Can not copy the codes / texts, please press [CTRL]+[C] (or CMD+C with Mac) to copy Table of Content