Hướng dẫn dùng rot13 decode trong PHP
ROT13 (rotate by 13 places) - Là 1 kiểu mã hóa thay thế (substitution cipher). 26 chữ cái A-Z và 26 chữ cái a-z được chia làm đôi (13), và đặt tương ứng nhau. Các chữ cái của bản rõ (bản chưa mã hóa), sẽ được thay thế lại theo đúng thứ tự tương ứng của bảng chữ cái đã đặt ra. để tạo thành bản đã được mã hóa (bản mờ). Minh họa cho dễ hiểu Bảng chữ cái chia làm đôi thành 2 hàng, mỗi hàng 13 chữ cái.
Muốn viết chữ HUNGXON theo thứ tự trên ta có: H ứng với U Tương tự với các chữ cái in thường a b c d e f g h i j k l m Để mã hóa toàn bảng chữ cái thì ghép 2 dãy với nhau: A B C D E F G H I J K L M a b c d e f g h i j k l m Thuật toán: Ta tạo 2 mảng: mảng (a): ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz 2 mảng này có sự đối xứng với nhau theo mẫu nhé A-N, N-A, b-o, o-b ... H ở vị trí 8 trong mảng (a), ứng với vị trí số 8 mảng (b) là U Để giải mã cũng so sánh vậy: (a) -- (b) Code php function rot13($str) { Mở rộng Có thể thêm vào các ký tự [email protected]#$%^&()* hoặc đảo sự hoán đổi các phần tử nhưng phải Kiểu như: [email protected]#$%^&*()_+{}":?><,./`=- Bài viết hôm nay, mình sẽ tiếp tục chia sẽ đến các bạn một hàm mã hóa nữa là hàm mã hóa ROT 13 C# . [C#] Tutorial Encrypt and Decrypt ROT 13 Vậy Mã hóa ROT 13 là gì? ROT13 (rotate by 13 places) khi dịch ra tiếng việt tôi tạm gọi ...Bài viết hôm nay, mình sẽ tiếp tục chia sẽ đến các bạn một hàm mã hóa nữa là hàm mã hóa ROT 13 C#. [C#] Tutorial Encrypt and Decrypt ROT 13 Vậy Mã hóa ROT 13 là gì? 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. 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. Và dưới đây là giao diện demo mã hóa ROT13 của C#: Source code mã hóa ROT 13 C# using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Text.RegularExpressions; using System.Threading.Tasks; using System.Windows.Forms; namespace RC4_cypher_Csharp { public partial class Form1 : Form { public Form1() { InitializeComponent(); } public static string Rot13(string input) { StringBuilder result = new StringBuilder(); Regex regex = new Regex("[A-Za-z]"); foreach (char c in input) { if (regex.IsMatch(c.ToString())) { int charCode = ((c & 223) - 52) % 26 + (c & 32) + 65; result.Append((char)charCode); } else { result.Append(c); } } return result.ToString(); } private void Form1_Load(object sender, EventArgs e) { } private void button1_Click(object sender, EventArgs e) { txtEncrypt.Text = Rot13(txtInput.Text); } private void button2_Click(object sender, EventArgs e) { txtDecrypt.Text = Rot13(txtEncrypt.Text); } } } Have Fun :) Tags: thuật toán mã hóagiải mãmã hóa |