Recent Posts

Code C#: Mã hóa cổ điển Affine (Affine Cipher)

-

///Hàm mã hóa Affine (Affine Encryption)
/// e(x) = (ax + b)(mod m). Note: a & m là số nguyên tố cùng nhau.

public static string AffineEncrypt(string plainText, int a, int b){
string cipherText = "";

char[] chars = plainText.ToUpper().ToCharArray();

foreach (char c in chars){
      int x = Convert.ToInt32(c - 65);
      cipherText += Convert.ToChar((( a * x + b ) % 26) + 65);
}

return cipherText;
}

/// Hàm giải mã Affine (Affine Decryption)
/// d(x) = aInverse * (e(x) − b)(mod m).

public static string AffineDecrypt(string cipherText, int a, int b){
string plainText = "";

int aInverse = MultiplicativeInverse(a); 

char[] chars = cipherText.ToUpper().ToCharArray();

foreach (char c in chars){
    int x = Convert.ToInt32(c - 65);
    if (x - b < 0) x = Convert.ToInt32(x) + 26;
    plainText += Convert.ToChar(((aInverse * (x - b)) % 26) + 65);
} 
    return plainText;
}

public static int MultiplicativeInverse(int a){
for (int x = 1; x < 27; x++){
    if ((a * x) % 26 == 1)
    return x;
}
throw new Exception("No multiplicative inverse found!");

}

Tag: C, C++, C#, mã hóa cổ điển, Affine, Affine Cipher, an toàn, bảo mật, Security

Related Post:

  • HTML: Chèn hình ảnh vào trang Web1. Các loại ảnh :a. Ảnh Gif (Graphics Interchange Format): được sử dụng phổ biến nhất trong các tài liệu HTML, dễ chuyển tải, ngay cả các kết nối sử dụng MODEM tốc độ chậm, hổ trợ 256 màu GIF. Các file GIF được định dạng không phụ thuộc phần nềnb. Ảnh JPEG (Joint PhotoGraphic Expert Group) có phần mở rộng .JPG, là loại ảnh nén mất thông tin, nghĩa là ảnh sau… Read More
  • Code C#: MultiCast Delegate - Cơ chế ủy quyền (Delegate) đa phương thức trong C#using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace MyMulticastDelegate{    public delegate void MulticastDelegate(int x, int y);    public class Vidu2{        public static void Cong(int x, int y) {            Console.WriteLine("Ban dang goi phuong thuc Cong(… Read More
  • HTML: Tạo danh sách trên trang web1. DANH SÁCH KHÔNG CÓ THỨ TỰ (Unorder List -UL) Cú pháp:<UL Type= Shape1>        <LI Type= Shape 2> Nội dung 1        <LI Type= Shape 2> Nội dung 2            …</UL>- Shape 1, Shape 2 là loại bullet tự động đặt ở đầu dòng trong danh sách-  Shape 1: ảnh hưởng đế… Read More
  • HTML: Một số thẻ HTML cơ bản (P.2)9. Thẻ <B>: Định dạng chữ đậm–     Cú pháp                                    <B> Nội dung chữ đậm</B>       &… Read More
  • HTML: Siêu liên kết (HyperLink)1. GIỚI THIỆU SIÊU LIÊN KẾT1.1. Siêu liên kết:Khả năng chính của HTML là hỗ trợ các siêu liên kết. Một siêu liên kết cho phép người truy cập có thể đi từ trang web này đến trang web khác. Một liên kết gồm 3 phần:–     Nguồn: chứa nội dung hiển thị khi người dùng truy cập đến, có thể là một trang web khác, một đoạn film, một hình ảnh hoặc … Read More
  • HTML: Thẻ tạo bảng trong thiết kế Web1. BẢNG (TABLE)Bảng thường được sử dụng để tạo các văn bản nhiều cột hoặc phân chia trang thành nhiều vùng khác nhau rất tiện lợi trong thiết kế và trình bày trang webCú pháp:<TABLE ><TR><TD>Nội dung trong ô 1</TD>   !-… Read More




Klik untuk melihat kode: :) =( :s :D :-D ^:D ^o^ 7:( :Q :p T_T @@, :-a :W *fck* x@