Từ 1 tới 7 trên tổng số 7 kết quả

Đề tài: Lập trình mã hóa cơ sở | Tổng quan về mã hóa

  1. #1
    Ngày gia nhập
    08 2006
    Nơi ở
    Hải Phòng
    Bài viết
    218

    Mặc định Lập trình mã hóa cơ sở | Tổng quan về mã hóa

    Để mở màn, tuần đầu tiên chúng ta sẽ nghiên cứu về Mã hoá:
    Dưới đây là giáo trình mình down được nói về lý thuyết mã hóa khá đầy đủ, các bạn down về cùng nghiên cứu rồi thấy phương pháp mã hóa nào dễ làm áp dụng được thì cùng nêu ý kiến để mọi người hợp sức viết code.
    Nếu như các bạn có những tài liệu khác về vấn đề này, hoặc đã có kinh nghiệm làm về đề tài này cũng mong được góp sức.
    Hy vọng, cùng nhau tập trung nghiên cứu chúng ta sẽ đạt được nhiều thành quả dù chỉ trong thời gian ngắn.
    Attached Files Attached Files
    Đã được chỉnh sửa lần cuối bởi hailoc12 : 31-08-2006 lúc 07:34 PM.

  2. #2
    Ngày gia nhập
    08 2006
    Nơi ở
    Hải Phòng
    Bài viết
    218

    Trong các cách mã hóa có vẻ như mã hóa dịch vòng là đơn giản và dễ thực hiện nhất. Nguyên tắc của cách mã hóa này như sau:
    Bản tin được biến thành mã bằng cách thay thế mỗi kí tự trong bản tin bởi một ký tự khác theo một luật cố định. Theo tài liệu trên có dẫn trong sơ đồ Caesar mỗi ký tự được thay thế bởi ký tự đứng sau nó k kí tự trong bảng kí tự ( bảng kí tự được sắp xếp theo vòng tròn từ A đến Z). Trong sơ đồ gốc của Caesar, k được chọn là 3 như vậy kí tự A được thay bởi D, B bởi E.... X bởi A, Y bởi B, Z bởi C.
    Theo cách mã hóa trên thì "congdongcviet" với k=5 ( thay a bằng e ) sau khi mã hóa sẽ là "htslitslhanjy"
    Vì cách này khá đơn giản nên dễ bị phá, nhưng nếu chỉ dùng để mã hóa một số thông tin không quan trọng lắm thì cũng tạm được.
    Còn đây là đoạn chương trình thực hiện công việc mã hóa trên.
    Code:
    #include "stdio.h"
    #include "conio.h"
    unsigned char str[255];
    char  khoa;
    
    void Nhap()
    {
       printf("\nBan hay nhap vao chuoi can ma hoa: "); scanf("%s",str);
       printf("\nBan hay nhap vao khoa de ma hoa: ");  khoa=getche();
    }
    void Mahoa()
    {
       int i=0;
       while ( ('a'<=str[i]) && ( str[i]<='z') )
          {
    	 str[i]+=(khoa % 'a'+1);
    	 if (str[i] > 'z') str[i]=str[i]-'z'-1+'a';
    	 i++;
          }
    }
    void In()
    {
       printf("\nChuoi da ma hoa la: %s",str);
    
    }
    int main()
    {
       clrscr;
       Nhap();
       Mahoa();
       In();
       getch();
       return 0;
    }

  3. #3
    Ngày gia nhập
    08 2006
    Nơi ở
    Hải Phòng
    Bài viết
    218

    Mặc định trả lời

    Tiếp đến là mã thế, thay vì chỉ sử dụng một kí tự làm từ khóa như phương pháp dịch vòng ở trên, mã này sử dụng một từ làm từ khóa vì vậy tính an toàn cao hơn rất nhiều
    Code:
    #include"stdio.h"
    #include"conio.h"
    // Khai bao bien chung
    #define Maxn 256
    unsigned char Str[Maxn];
    char Key[Maxn];
    int nKey=0, nStr=0;
    void mahoa()
    {
     int i;
     char ch;
     for (i=0;i<nStr;i++)
       {
         Str[i] += Key[ i % nKey ] % 'a'+1;
         if (Str[i] > 'z') Str[i]= (Str[i]-'z'+'a'-1);
       }
    }
    
    int main()
    {
     printf("\nHay nhap vao chuoi can ma hoa:"); gets(Str);
     printf("\nHay nhap vao tu khoa: ");gets(Key);
     int i=0;
     while (Str[i]!=NULL)
        {
           i++;
           nStr++;
        }
     i=0;
     while (Key[i]!=NULL)
        {
           i++;
           nKey++;
        }
     mahoa();
     printf("\nChuoi sau khi da ma hoa: ");puts(Str);
     getch();
     return 0;
    
    }

  4. #4
    Ngày gia nhập
    08 2006
    Nơi ở
    TpHCM
    Bài viết
    202

    chào các bạn,
    các bạn đang tập trung ở các loại mã hóa bảo mật,
    trong thực tế, còn cần cả những loại mã hóa mà không quan tâm đến bảo mật, tức là giải mã càng nhanh càng dễ càng tốt, tui nghĩ ai có nhiều kinh nghiệm và kiến thức thì trình bày cho tui và mọi người khác biết thêm

    ví dụ như thế này

    1. 1 đoạn dữ liệu binary (đương nhiên là có thể chứa kí tự '\0'), tui cần mã hóa thành dạng chuỗi (không chứa kí tự '\0'), ai đề nghị một giải thuật tốt giúp tui không? vấn đề này cần thiết trong tình huống, cần người dùng nhập dữ liệu binary (thay vì nhập binary thì nhập chuỗi sau đó giải mã), hoặc lưu trong database, vì theo tui biết trong DB không có kiểu dữ liệu binary

    2. tui có một tập hợp các kí tự (64 kí tự gồm 'a'..'z' + 'A'..'Z' + '0'..'9' + '_' + '.'), bây giờ cần thiết phải mã hóa một đoạn dữ liệu binary thành một chuỗi khác bao gồm các kí tự trong tập hợp trên

    3.giải thuật mã hóa blowfish như thế nào, ưu điểm / nhược điểm ra sao, ai chỉ giùm tui vấn đề này. Cảm ơn

  5. #5
    Ngày gia nhập
    08 2006
    Nơi ở
    TpHCM
    Bài viết
    202

    tui đặt ra tình huống áp dụng 2.: tui cần lưu một buffer vào file .xml ví dụ

    <class name="abc" methodcount=4/>
    <buffer data="abcABC0123456789._"/>
    như vậy data đã được mã hóa thành chuỗi các kí trên trong tập hợp cho trước, lý do là .xml không hỗ trợ một số kí tự đặc biệt như '\10' và vài kí tự khác, vai trò củatập hợp cho trước là chứa những kí tự được phép

  6. #6
    Ngày gia nhập
    10 2006
    Nơi ở
    Rừng Amazon
    Bài viết
    101

    Mặc định Lập trình mã hóa cơ sở | Tổng quan về mã hóa

    Trích dẫn Nguyên bản được gửi bởi nguyentuan2
    chào các bạn,
    các bạn đang tập trung ở các loại mã hóa bảo mật,
    trong thực tế, còn cần cả những loại mã hóa mà không quan tâm đến bảo mật, tức là giải mã càng nhanh càng dễ càng tốt, tui nghĩ ai có nhiều kinh nghiệm và kiến thức thì trình bày cho tui và mọi người khác biết thêm

    ví dụ như thế này

    1. 1 đoạn dữ liệu binary (đương nhiên là có thể chứa kí tự '\0'), tui cần mã hóa thành dạng chuỗi (không chứa kí tự '\0'), ai đề nghị một giải thuật tốt giúp tui không? vấn đề này cần thiết trong tình huống, cần người dùng nhập dữ liệu binary (thay vì nhập binary thì nhập chuỗi sau đó giải mã), hoặc lưu trong database, vì theo tui biết trong DB không có kiểu dữ liệu binary

    2. tui có một tập hợp các kí tự (64 kí tự gồm 'a'..'z' + 'A'..'Z' + '0'..'9' + '_' + '.'), bây giờ cần thiết phải mã hóa một đoạn dữ liệu binary thành một chuỗi khác bao gồm các kí tự trong tập hợp trên

    3.giải thuật mã hóa blowfish như thế nào, ưu điểm / nhược điểm ra sao, ai chỉ giùm tui vấn đề này. Cảm ơn
    Một cách đơn giản nhất, với mỗi giá trị binary bạn lưu giá trị của nó vào dưới dạng số ở hệ hexa. Ví dụ, giá trị 64 sẽ được lưu thành 2 ký tự '40'. Như vậy bạn có thể có 1 phép mã hóa rồi đấy.

  7. #7
    Ngày gia nhập
    08 2006
    Nơi ở
    TpHCM
    Bài viết
    202

    đương nhiên, nhưng cách đó thì quá tệ, cần phải đánh giá về lượng tin, từ mã để có được giải thuật nhanh, và kích thước chuỗi sau khi mã hóa nhỏ nhất

Các đề tài tương tự

  1. Dịch vụ gửi hàng hóa đi Australia, gửi hàng hóa đi France, gửi hàng hóa đi Germany, gửi hàng hóa đi Janpan giá rẻ.
    Gửi bởi sales5ttico trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 1
    Bài viết cuối: 30-07-2014, 02:51 PM
  2. Bài tập C++ Hoàn thiện fix lỗi bài tập có liên quan đa năng hóa toán tử !
    Gửi bởi tuanath trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 3
    Bài viết cuối: 27-04-2013, 11:10 PM
  3. Chương trình 3 lớp Quan hệ nhiều bảng trong Form Hóa Đơn
    Gửi bởi xuandung892010 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 6
    Bài viết cuối: 26-03-2011, 05:29 PM
  4. Công nghệ nhận dạng chữ viết, số hóa thông tin, giải pháp số hóa cho các doanh nghiệp
    Gửi bởi thepbac trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 23-04-2010, 09:51 AM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn