Vigenere Encryption - Programming - Dạy Nhau Học Trang chủ » Code Hệ Mã Vigenere » Vigenere Encryption - Programming - Dạy Nhau Học Có thể bạn quan tâm Code Hh Bò Vàng Code Hh Lốc Xoáy Code Hh Pha Lê Tím Code Hiện Thông Báo Html Code Hiệu ứng Khi Rê Chuột Vào Link Vigenere encryption programming c-sharp algorithm vuthuan97 (Vũ Thuận) May 15, 2019, 9:06pm #1 mình đang có bài tập lớn là mô phỏng quá trình mã hóa và giải mã Vigenere mình tính làm nó trên winform c# image.png1366×768 116 KB ai có phương án để giải mã giúp mình vs ạ SITUVN.gcd (SITUVNgcd) May 14, 2019, 12:10pm #2 Theo tham chiếu bảng thì chuỗi mã hóa của bạn sai rồi. Có chỗ M + H = T, có chỗ thì M + H = S. Bạn bí chỗ thể hiện từng bước trên Winfrom hay chỗ giải mã? Bảng tham chiếu cũng sai khi mất hàng loạt kí tự L. 3 Likes vuthuan97 (Vũ Thuận) May 15, 2019, 4:30am #3 trên winform thì mình mới demo giao diện kiểu như này image.png1366×768 113 KB mình đang mắc chỗ giải mã, mã hóa thì cách làm mình tạm hiểu rồi SITUVN.gcd (SITUVNgcd) May 14, 2019, 12:25pm #4 Cách bạn mã hóa như thế nào? Dùng bảng (mảng 2 chiều) để tham chiếu? Dùng cách biến đổi mã kí tự (CharCode)? Cách 2 là cách thuận tiện nhất cho cả mã hóa và giải mã. 3 Likes vuthuan97 (Vũ Thuận) May 14, 2019, 1:16pm #5 mình tính mã hóa bằng cách gắn giá trị của bảng chữ cái bằng dictionary{“string”,int}( {“A”,0}…,{“Z”,26}) kiểu đó , rồi lúc nhập str vào mình sẽ get ra mã của nó và cộng vs mã của khóa( mã khóa cũng lấy tương tự ) sau đó mod cho 26 , sau đó lại đối chiếu qua dictionary đó để đưa về chữ đã mã hóa. hiện tại mình ms lên ý tưởng thế không biết được không SITUVN.gcd (SITUVNgcd) May 14, 2019, 2:00pm #6 Ý tướng hay đấy, giống cách 2 của mình, nhưng rảnh quá Mỗi kí tự đều có mã kí tự cả rồi. Lập Từ điển làm gì nữa. (int)'A'-(int)'A' = 0 (int)'B'-(int)'A' = 1 ... (int)'Z'-(int)'A' = 25 26 kí tự đi từ 0 - 25. Lấy mã kí tự tương ứng trừ (-) mã kí tự của A là ra giá trị số rồi. Trong bài này mã hóa và giải mã chỉ khác nhau một đoạn nhỏ, nhất là chỉ ngược nhau 1 phép tính + và - thôi. Mình chỉ dùng 4 phép toán: + - * % để mã hóa và giả mã. Mẫu bằng Javascript: https://codepen.io/SITUVN_gcd/pen/eaBMwQ Viết bằng C# còn ngắn hơn nữa. 4 Likes vuthuan97 (Vũ Thuận) May 14, 2019, 2:19pm #7 mình không học javascirp nên nhìn mấy hàm kia ko hiểu lắm, mình có thắc mắc thế này : bây h mình lấy được mã của thông điệp và key rồi nhưng đến đoạn ghép mã của key và mã của thông điệp sao cho đủ chuỗi thì mình hơi mắc ý tưởng image.png1366×768 118 KB SITUVN.gcd (SITUVNgcd) May 14, 2019, 4:09pm #8 Như hình ban đầu mà bạn đưa đấy, lấy chuỗi cần mã hóa/giải mã thành từng nhóm có độ dài bằng khóa rồi tham chiếu theo bảng thôi. Cú pháp C# với Javascript chẳng khác nhau là mấy, cho vòng lặp thì gần như không có điểm khác. k = k.toUpperCase(); // sang in HOA s = s.toUpperCase(); // sang in HOA var r = ""; // chuỗi kết quả mã hóa/giải mã var c = 0; // dùng xoay vòng theo độ dài khóa. for(var i = 0;i<s.length;i++){ // lặp qua từng kí tự của chuỗi if(không_trong_khoảng_A_Z){// kí tự tại s[i] không hợp lệ r+=s[i]; // không mã hóa, nối luôn vào kết quả continue; // bỏ qua bước mã hóa } //////// PHẦN CHÍNH // tính toán/tham chiếu kí tự được mã hóa/giải mã // dựa vào s[i] và k[c] r += ???; //////// c = (c+1)%k.length; // tăng lên và xoay vòng theo độ dài của khóa } Tùy theo yêu cầu mà phần đk if kiểm tra hợp lệ có thể bỏ qua (không mã hóa/giải mã) hoặc quăng ngoại lệ/thông báo chuỗi không hợp lệ. 4 Likes vuthuan97 (Vũ Thuận) May 15, 2019, 3:53am #9 mình không hiểu cai chỗ vòng xoay c= (c+1)%k.lenght; SITUVN.gcd (SITUVNgcd) May 15, 2019, 5:13am #11 Đi qua từng kí tự của khóa, khi nào đến kí tự cuối thì lại về kí tự dầu tiên. 3 Likes vuthuan97 (Vũ Thuận) May 15, 2019, 5:35am #12 mình không biết trong c# hàm nào có công dụng giống charcodeAt trong javascrip nên vẫn làm theo hướng lập từ điện giá trị cho bảng chữ cái rồi phân tích ra mã của key và thông điệp đến đoạn đó thì mình không biết cách tính toán giữa 2 mảng 1 chiều image.png1366×768 116 KB SITUVN.gcd (SITUVNgcd) May 15, 2019, 9:22am #13 SITUVN.gcd: (int)'A' Mình đã nói là qua C# ngắn hơn Javscript nhiều mà. (int)s[i] 3 Likes vuthuan97 (Vũ Thuận) May 15, 2019, 10:43am #14 mình làm như bạn mà cuối cùng code nó ra 1 đống mã khác chứ không phải ký tự image.png1366×768 117 KB SITUVN.gcd (SITUVNgcd) May 15, 2019, 11:26am #15 Ép kiểu ngược về char nữa chứ . r +=(char)(nguyên đoạn còn lại); 3 Likes vuthuan97 (Vũ Thuận) May 15, 2019, 11:41am #16 do kiến thức mình ít nên làm phiền bạn quá ,mình thêm (char) thì nó lại ra như này image.png1366×768 121 KB SITUVN.gcd (SITUVNgcd) May 15, 2019, 12:44pm #17 Mình thấy bạn có sai trong 2 phép tính + - rồi đấy. 4 Likes vuthuan97 (Vũ Thuận) May 15, 2019, 1:08pm #18 mình kiểm tra lại phép toán và sửa lại rồi nhưng kết quả vẫn ra 1 cái mã khác . mai mình phải nộp bài rồi , bạn xem còn lỗi nào chỉ giúp mình vs image.png1366×768 122 KB SITUVN.gcd (SITUVNgcd) May 15, 2019, 1:32pm #19 Dấu ngặc đơn nữa. Đây là mã hóa: Giải mã thì chỉ thay đổi chỗ tính toán lại, dựa theo đoạn Javascript mình đưa mà làm. Chú ý: thứ tự phép toán và các dấu ngoặc. 3 Likes vuthuan97 (Vũ Thuận) May 15, 2019, 2:44pm #20 cảm ơn bạn nha, mình làm đươc rồi image.png1366×768 127 KB 1 Like SITUVN.gcd (SITUVNgcd) May 15, 2019, 3:15pm #21 Thế hiểu tại sao mình dùng phép toán, mà không cần tham chiếu bảng cho phức tạp không? Nhìn vào bảng và tìm ra quy luật chung. Xem như giải hộ bạn luôn rồi. Cần học thêm, nhiều thứ đơn giản bạn vẫn chưa biết. Hãy xem lại bài làm. Nếu chưa hiểu chỗ nào thì hãy biết hỏi “Tại sao” chỗ đấy. 5 Likes next page → DayNhauHoc's Discord Học C++ Free? Click Blog Dạy Nhau Học Tự Học Lập Trình 83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao? Từ khóa » Code Hệ Mã Vigenere Mật Mã Vigenère – Wikipedia Tiếng Việt Mã Hoá Vigenère - KienDT [Online] Dịch Và Mã Hóa Vigenère Code C#: Mã Hóa Cổ điển Vigenere (Vigenere Cipher) - Thongtinchiase Mã Hóa Cổ điển - Mã Hóa Vigenere - YouTube [Crypto] 06 – Mã Vigenere - Nhat Truong Blog Thám Mật Mã Vigenère - Tạp Chí An Toàn Thông Tin Các Hướng Dẫn Mã Hóa Mật Mã Vigenère Cipher Và Playfair ... Vigenere Cipher In C And C++ - The Crazy Programmer Bài Tập Giải Mã Vigenère - Thả Rông Slide Lập Trình Hệ Mật Vigenere ( đính Kèm Source Code) - 123doc Nhờ Giúp Về Giải Thuật Giải Mã Vigenere [Archive] - Diễn Đàn Tin Học Phân Tích Hệ Thám Mã Vigenere