Tiêu đề bài viết
Nội dung của một bài báo được viết bởi ai đó. Inko Gnito- tác giả của nó.
Ngữ nghĩa của mã HTML luôn là một chủ đề nóng. Một số nhà phát triển cố gắng luôn viết mã ngữ nghĩa. Những người khác chỉ trích những người theo giáo điều. Và một số thậm chí không biết nó là gì và tại sao nó lại cần thiết. Ngữ nghĩa được xác định trong HTML trong các thẻ, lớp, ID và thuộc tính mô tả mục đích nhưng không chỉ định chính xác nội dung chúng chứa. Tức là chúng ta đang nói về việc tách nội dung và định dạng của nó.
Hãy bắt đầu với một ví dụ rõ ràng.
Nội dung của một bài báo được viết bởi ai đó. Inko Gnito- tác giả của nó.Tiêu đề bài viết
Cho dù bạn nghĩ HTML5 đã sẵn sàng để sử dụng hay chưa thì việc sử dụng Nhưng không phải mọi thứ đều được thể hiện rõ ràng bằng thẻ HTML5. Chúng ta hãy xem một tập hợp các tên lớp và xem liệu chúng có đáp ứng các yêu cầu về ngữ nghĩa hay không. Không phải mã ngữ nghĩa.Đây là một ví dụ cổ điển. Mọi bàn làm việc lưới CSS đều sử dụng các loại tên lớp này để xác định các thành phần lưới. Cho dù đó là "yui-b", "grid-4" hay "spanHalf" - những cái tên như vậy gần với việc chỉ định đánh dấu hơn là mô tả nội dung. Tuy nhiên, việc sử dụng chúng là không thể tránh khỏi trong hầu hết các trường hợp khi làm việc với các mẫu lưới mô-đun. Mã ngữ nghĩa. Footer đã mang lại ý nghĩa mạnh mẽ trong thiết kế web. Đây là phần dưới cùng của trang, chứa các thành phần như điều hướng lặp lại, quyền sử dụng, thông tin tác giả, v.v. Lớp này định nghĩa một nhóm cho tất cả các phần tử này mà không mô tả chúng. Nếu bạn đã chuyển sang sử dụng HTML5 thì tốt hơn nên sử dụng phần tử Không phải mã ngữ nghĩa. Nó xác định nội dung một cách chính xác. Nhưng tại sao văn bản phải lớn? Để nổi bật so với văn bản nhỏ hơn khác? "standOut" (đánh dấu) phù hợp hơn trong trường hợp này. Bạn có thể quyết định thay đổi kiểu của văn bản tô sáng nhưng không làm gì với kích thước của nó, trong trường hợp đó tên lớp có thể khiến bạn bối rối. Mã ngữ nghĩa. Trong trường hợp này, chúng ta đang nói về việc xác định mức độ quan trọng của một thành phần trong giao diện ứng dụng (ví dụ: một đoạn văn hoặc một nút). Phần tử cấp cao hơn có thể có màu sáng và kích thước lớn hơn, trong khi phần tử cấp thấp hơn có thể chứa nhiều nội dung hơn. Nhưng trong trường hợp này không có định nghĩa chính xác về kiểu dáng, vì vậy mã chỉ mang tính ngữ nghĩa. Tình huống này rất giống với việc sử dụng thẻ Mã ngữ nghĩa. Giá như mỗi tên lớp có thể được xác định rõ ràng như vậy! Trong trường hợp này, chúng tôi có mô tả về một phần có nội dung có mục đích dễ mô tả, giống như "tweet", "phân trang" hoặc "admin-nav". Không phải mã ngữ nghĩa. Trong trường hợp này, chúng ta đang nói về việc thiết lập kiểu cho đoạn đầu tiên trên trang. Kỹ thuật này được sử dụng để thu hút sự chú ý của người đọc vào tài liệu. Tốt hơn nên sử dụng tên "intro", tên này không đề cập đến phần tử. Nhưng sẽ tốt hơn nếu sử dụng bộ chọn cho những đoạn văn như vậy, chẳng hạn như bài viết p:first-of-type hoặc h1 + p . Không phải mã ngữ nghĩa.Đây là tên lớp rất chung chung được sử dụng để tổ chức định dạng các phần tử. Nhưng không có gì trong đó liên quan đến mô tả nội dung. Nhiều nhà lý thuyết ngữ nghĩa khác nhau khuyên bạn nên sử dụng tên lớp như "nhóm" trong những trường hợp như vậy. Có khả năng là họ đúng. Vì phần tử này chắc chắn dùng để nhóm một số phần tử khác nên tên được đề xuất sẽ mô tả rõ hơn mục đích của nó mà không cần đi sâu vào chi tiết. Không phải mã ngữ nghĩa. Mô tả quá chi tiết về định dạng nội dung. Tốt hơn là chọn một tên khác mô tả nội dung hơn là định dạng của nó. Mã ngữ nghĩa. Lớp mô tả trạng thái của nội dung rất tốt. Ví dụ: thông báo thành công có thể có kiểu hoàn toàn khác với thông báo lỗi. Không phải mã ngữ nghĩa. Ví dụ này cố gắng xác định định dạng của nội dung hơn là mục đích của nó. "plain-jane" rất giống với "bình thường" hoặc "thông thường". Mã CSS lý tưởng phải được viết theo cách không cần đến tên lớp như "thông thường" để mô tả định dạng của nội dung. Không phải mã ngữ nghĩa. Các loại lớp này thường được sử dụng để xác định các thành phần trang web không được đưa vào chuỗi liên kết. Trong trường hợp này, tốt hơn nên sử dụng cái gì đó như rel=nofollow cho các liên kết chứ không phải một lớp cho tất cả nội dung. Không phải mã ngữ nghĩa.Đây là một nỗ lực để mô tả định dạng của nội dung chứ không phải mục đích của nó. Giả sử bạn có hai bài viết trên trang web của mình. Và bạn muốn tạo cho họ những phong cách khác nhau. "Đánh giá phim" sẽ có nền màu xanh lam và "Tin nóng" sẽ có nền màu đỏ và cỡ chữ lớn hơn. Một cách để giải quyết vấn đề là thế này: Một cách khác là thế này: Chắc chắn, nếu bạn phỏng vấn một số nhà phát triển về mã nào phù hợp hơn với các yêu cầu về ngữ nghĩa, thì đa số sẽ hướng đến tùy chọn đầu tiên. Nó hoàn toàn phù hợp với nội dung của bài học này: mô tả mục đích mà không có liên kết đến định dạng. Và tùy chọn thứ hai cho biết định dạng (“blueBg” là tên lớp, được hình thành từ hai từ tiếng Anh có nghĩa là “nền xanh”). Nếu bạn đột nhiên quyết định thay đổi thiết kế của các bài đánh giá phim - ví dụ: tạo nền màu xanh lá cây, thì tên lớp "blueBg" sẽ trở thành cơn ác mộng của nhà phát triển. Và cái tên “đánh giá phim” sẽ cho phép bạn hoàn toàn dễ dàng thay đổi phong cách thiết kế trong khi vẫn duy trì mức hỗ trợ mã tuyệt vời. Nhưng không ai khẳng định rằng ví dụ đầu tiên tốt hơn trong mọi trường hợp mà không có ngoại lệ. Giả sử rằng một màu xanh lam nhất định được sử dụng ở nhiều nơi trên trang web. Ví dụ: nó là nền cho một số phần chân trang và các khu vực trong thanh bên. Bạn có thể sử dụng bộ chọn sau: Đánh giá phim, chân trang > div:nth-of-type(2), sang một bên > div:nth-of-type(4) ( nền: #c2fbff; ) Một giải pháp hiệu quả vì màu sắc chỉ được xác định ở một nơi. Nhưng mã như vậy trở nên khó bảo trì vì nó có bộ chọn dài và khó hiểu bằng mắt. Bạn cũng sẽ cần các bộ chọn khác để xác định các kiểu duy nhất, điều này sẽ dẫn đến việc lặp lại mã. Hoặc bạn có thể thực hiện một cách tiếp cận khác và tách chúng ra: Đánh giá phim ( nền: #c2fbff; /* Định nghĩa màu */ ) chân trang > div:nth-of-type(2) ( nền: #c2fbff; /* Và một điều nữa */ ) sang một bên > div:nth-of - type(4) ( nền: #c2fbff; /* Và một điều nữa */ ) Kiểu này giúp giữ cho tệp CSS có tổ chức hơn (các khu vực khác nhau được xác định trong các phần khác nhau). Nhưng cái giá phải trả là sự lặp lại các định nghĩa. Đối với các trang web lớn, việc xác định cùng một màu có thể đạt tới vài nghìn lần. Kinh khủng! Một giải pháp là sử dụng một lớp như "blueBg" để xác định màu một lần và chèn nó vào mã HTML khi bạn muốn sử dụng thiết kế đó. Tất nhiên, tốt hơn nên gọi nó là "mainBrandColor" hoặc "secondaryFont" để loại bỏ mô tả định dạng. Bạn có thể hy sinh ngữ nghĩa mã để tiết kiệm tài nguyên. Vì trên thế giới có số lượng mật mã rất lớn nên không thể xem xét tất cả các mật mã không chỉ trong khuôn khổ bài viết này mà còn trên toàn bộ trang web. Do đó, chúng tôi sẽ xem xét các hệ thống mã hóa nguyên thủy nhất, ứng dụng của chúng cũng như các thuật toán giải mã. Mục tiêu bài viết của tôi là giải thích cho nhiều người dùng các nguyên tắc mã hóa/giải mã theo cách dễ tiếp cận nhất có thể, cũng như dạy về các mật mã nguyên thủy. Hồi còn đi học, tôi đã sử dụng mật mã nguyên thủy mà các đồng chí lớn tuổi của tôi đã kể cho tôi nghe. Hãy xem xét mật mã nguyên thủy “Mật mã với các chữ cái được thay thế bằng số và ngược lại”. Hãy vẽ một bảng như trong Hình 1. Chúng ta sắp xếp các số theo thứ tự, bắt đầu bằng một và kết thúc bằng số 0 theo chiều ngang. Bên dưới các con số, chúng ta thay thế các chữ cái hoặc ký hiệu tùy ý. Cơm. 1 Chìa khóa của mật mã bằng cách thay thế các chữ cái và ngược lại. Bây giờ chúng ta hãy chuyển sang bảng 2, nơi bảng chữ cái được đánh số. Cơm. 2 Bảng tương ứng giữa các chữ cái và số của bảng chữ cái. Bây giờ hãy mã hóa từ này C O S T E R: 1) 1. Hãy chuyển chữ thành số: K = 12, O = 16, C = 19, T = 20, E = 7, P = 18 2) 2. Hãy chuyển các số thành ký hiệu theo Bảng 1. KP KT KD PSH KL 3) 3. Xong. Ví dụ này cho thấy một mật mã nguyên thủy. Hãy xem xét các phông chữ có độ phức tạp tương tự nhau. 1. 1. Mật mã đơn giản nhất là Mật mã thay thế chữ cái bằng số. Mỗi chữ cái tương ứng với một số theo thứ tự bảng chữ cái. A-1, B-2, C-3, v.v. 2. Bạn cũng có thể mã hóa tin nhắn bằng BẢNG SỐ. Các thông số của nó có thể là bất cứ thứ gì, điều chính là người nhận và người gửi đều biết. Ví dụ về một bảng kỹ thuật số Cơm. 3 Bảng kỹ thuật số. Chữ số đầu tiên trong mật mã là cột, chữ số thứ hai là hàng hoặc ngược lại. Vì vậy từ “TÂM” có thể được mã hóa thành “33 24 34 14”. 3. 3. MẬT SÁCH 4. 4. MẬP MÃ CAESAR(mật mã dịch chuyển, dịch chuyển Caesar) Một vi dụ khac: Mã hóa bằng khóa K=3. Chữ "C" "chuyển" ba chữ cái về phía trước và trở thành chữ "F". Một ký tự cứng di chuyển ba chữ cái về phía trước sẽ trở thành chữ “E”, v.v.: Bảng chữ cái gốc: A B C D E F G H H I J K L M N O P R S T U V X C Đã mã hóa: D E E F G H I J K L M N O P R S T U V Văn bản gốc: Ăn thêm một ít bánh mì Pháp mềm này và uống một ít trà. Bản mã thu được bằng cách thay thế từng chữ cái của văn bản gốc bằng chữ cái tương ứng của bảng chữ cái mật mã: Fezyya yz zyi ahlsh pvenlsh chugrschtskfnlsh dsosn, zhg eyutzm ygb. 5. MẬP MÃ VỚI TỪ MÃ 6. 6. MÃ ATBASH 7. 7. MẬP MÃ FRANCIS THỊT XÔNG HƠI a AAAAAA g AABBA m ABABB s BAAAB và BABBA b AAAAB h AABBB n ABBAA t BAABA z BABBB c AAABA và ABAAA hoặc ABBAB và BAABB d AAABB j BBBAA p ABBBA v BBBAB e AABAA k ABAAB q ABBBB w BABAA f AABAB l ABABA r BAAAA x BABAB Khó khăn trong việc giải mã nằm ở việc xác định mật mã. Một khi đã được xác định, tin nhắn sẽ dễ dàng được sắp xếp theo thứ tự bảng chữ cái. 8. 8. MẬP MÃ BLAISE VIGENERE. Cơm. 4 Mật mã Blaise Vigenere 9. 9. MẬP MÃ LESTER HILL 10. 10. MÃ TRITEMIUS 11. 11. MẬP MÃ MASONIC 12. 12. MẬP MÃ GRONSFELD Về nội dung, mật mã này bao gồm mật mã Caesar và mật mã Vigenère, nhưng mật mã Gronsfeld sử dụng khóa số. Hãy mã hóa từ “THALAMUS” bằng cách sử dụng khóa số 4123. Chúng ta nhập các số của phím số theo thứ tự dưới mỗi chữ cái của từ. Số bên dưới chữ cái sẽ cho biết số vị trí mà chữ cái cần được dịch chuyển. Ví dụ: thay vì T bạn nhận được X, v.v. T H A L A M U S T U V W X Y Z Kết quả là: THALAMUS = XICOENWV 13. 13. LỢN LATIN 14. 14. QUẢNG TRƯỜNG POLYBIUS 1 PHƯƠNG PHÁP. Thay vì sử dụng mỗi chữ cái trong một từ, chữ cái tương ứng bên dưới được sử dụng (A = F, B = G, v.v.). Ví dụ: CIPHER - HOUNIW. Có rất nhiều loại mật mã và bạn cũng có thể nghĩ ra mật mã của riêng mình, nhưng rất khó để phát minh ra một mật mã mạnh, vì khoa học giải mã đã có những tiến bộ vượt bậc cùng với sự ra đời của máy tính và bất kỳ mật mã nghiệp dư nào cũng sẽ trở nên dễ dàng hơn. được các chuyên gia bẻ khóa trong thời gian rất ngắn. Phương pháp mở hệ thống chữ cái đơn (giải mã) Mặc dù cách thực hiện đơn giản nhưng các hệ thống mã hóa một chữ cái rất dễ bị tấn công. Ngữ nghĩa(sémantique tiếng Pháp từ tiếng Hy Lạp cổ σημαντικός - biểu thị) - khoa học hiểu các dấu hiệu nhất định, chuỗi ký hiệu và các ký hiệu khác. Khoa học này được sử dụng trong nhiều lĩnh vực: ngôn ngữ học, giao tiếp, ngữ dụng học, từ nguyên, v.v. Tôi không thể tưởng tượng được những từ này có ý nghĩa gì và tất cả những ngành khoa học này có tác dụng gì. Và điều đó không thành vấn đề, tôi quan tâm đến vấn đề sử dụng ngữ nghĩa trong bố cục trang web. Tôi sẽ không đề cập đến thuật ngữ Semantic Web ở đây. Thoạt nhìn, có vẻ như chủ đề Web ngữ nghĩa và mã HTML ngữ nghĩa gần như giống nhau. Nhưng trên thực tế, Semantic Web là một khái niệm khá triết lý và không có nhiều điểm chung với thực tế hiện nay. Trong một ngôn ngữ, mỗi từ đều có một ý nghĩa và mục đích cụ thể. Khi bạn nói “xúc xích”, bạn muốn nói đến một sản phẩm thực phẩm là thịt băm (thường là thịt) đựng trong vỏ hình thuôn dài. Tóm lại, ý bạn là xúc xích chứ không phải sữa hay đậu xanh. HTML cũng là một ngôn ngữ, những “từ” của nó gọi là thẻ cũng có ý nghĩa và mục đích logic nhất định. Vì lý do này, trước hết Mã HTML ngữ nghĩa là một bố cục sử dụng đúng các thẻ HTML, sử dụng chúng cho mục đích đã định, như dự định của các nhà phát triển ngôn ngữ HTML và tiêu chuẩn web. microformats.org là một cộng đồng hoạt động nhằm biến những ý tưởng lý tưởng của Web ngữ nghĩa thành hiện thực bằng cách đưa bố cục trang đến gần hơn với những lý tưởng ngữ nghĩa tương tự. Nếu thông tin trên trang web của tôi được hiển thị giống như trên thiết kế, tại sao bạn phải vắt óc suy nghĩ về một số loại ngữ nghĩa?! Đây là công việc làm thêm! Ai cần cái này?! Ai sẽ đánh giá cao điều này ngoại trừ một nhà thiết kế bố cục khác? Tôi thường nghe những câu hỏi như vậy. Hãy tìm ra nó. Tăng tính sẵn có của thông tin trên trang web. Trước hết, điều này rất quan trọng đối với các tác nhân thay thế như: Các công cụ tìm kiếm không ngừng cải tiến phương pháp tìm kiếm của họ để đảm bảo rằng kết quả chứa thông tin bạn muốn. thực sự đang tìm kiếm người dùng. HTML ngữ nghĩa tạo điều kiện thuận lợi cho việc này bởi vì... giúp phân tích tốt hơn nhiều - mã sạch hơn, mã hợp lý hơn (bạn có thể thấy rõ tiêu đề ở đâu, điều hướng ở đâu, nội dung ở đâu). Nội dung tốt cộng với bố cục ngữ nghĩa chất lượng cao đã là một ứng dụng nghiêm túc cho vị trí tốt trong kết quả của công cụ tìm kiếm. Các nhà thiết kế và phát triển web thích sử dụng các thuật ngữ và cụm từ khó hiểu mà đôi khi chúng ta khó hiểu. Bài viết này sẽ tập trung vào mã ngữ nghĩa. Hãy cùng tìm hiểu xem nó là gì nhé! Mã ngữ nghĩa là gì? Ngay cả khi bạn không phải là nhà thiết kế web, bạn có thể biết rằng trang web của mình được viết bằng HTML. HTML ban đầu được dự định là một phương tiện mô tả nội dung của một tài liệu chứ không phải là một phương tiện làm cho nó trông bắt mắt. Mã ngữ nghĩa quay trở lại khái niệm ban đầu này và khuyến khích các nhà thiết kế web viết mã mô tả nội dung, thay vì nội dung trông như thế nào. Ví dụ: tiêu đề trang có thể được lập trình như sau: Đây là tiêu đề trang
Điều này sẽ làm cho tiêu đề lớn và đậm, trông giống như tiêu đề trang, nhưng không có gì mô tả nó là “tiêu đề” trong mã. Điều này có nghĩa là máy tính không thể nhận ra đó là tiêu đề của trang. Khi viết tiêu đề về mặt ngữ nghĩa, để máy tính nhận biết là “tiêu đề” chúng ta phải sử dụng đoạn mã sau: Hình thức của tiêu đề có thể được xác định trong một tệp riêng biệt gọi là “trang định kiểu xếp tầng” (CSS) mà không can thiệp vào mã HTML mô tả (ngữ nghĩa) của bạn. Tại sao mã ngữ nghĩa lại quan trọng? Khả năng nhận dạng chính xác nội dung của máy tính rất quan trọng vì một số lý do: Mã ngữ nghĩa còn có những ưu điểm khác: Làm thế nào bạn có thể chắc chắn rằng một trang web đang sử dụng mã ngữ nghĩa? Hiện tại chưa có công cụ nào có thể kiểm tra mã ngữ nghĩa. Tất cả đều bắt nguồn từ việc kiểm tra màu sắc, phông chữ hoặc bố cục trong mã thay vì mô tả nội dung. Nếu việc phân tích mã nghe có vẻ đáng sợ thì điểm khởi đầu tuyệt vời là hãy hỏi nhà thiết kế web của bạn - liệu anh ấy có nghĩ đến việc viết mã theo ngữ nghĩa không? Nếu anh ấy nhìn bạn ngơ ngác hoặc bắt đầu nói những câu chuyện lố bịch, thì bạn có thể chắc chắn rằng anh ấy không viết mã theo cách này. Lúc này bạn phải quyết định nên cho anh ấy một hướng đi mới trong công việc hay tìm cho mình một nhà thiết kế mới?! Và dựa trên lý do trong các nhận xét, tôi muốn làm rõ một điểm quan trọng mà bạn cần hiểu trước khi nói về ngôn ngữ HTML và các thẻ được sử dụng trong đó. Thời điểm này nằm ở việc hiểu một khái niệm quan trọng như ngữ nghĩa mã. Chúng ta hãy cố gắng hiểu vấn đề này trong bài đăng này và tại sao tất cả những điều này là cần thiết. Chuyện gì đã xảy ra vậy ngữ nghĩa mã? Ngữ nghĩa(theo quan điểm ngôn ngữ học) là ý nghĩa, nội dung thông tin của một ngôn ngữ hoặc đơn vị riêng của nó. Như chúng ta biết, các đơn vị cấu trúc của ngôn ngữ HTML là các thẻ; chúng là các đơn vị riêng lẻ mang ý nghĩa và nội dung thông tin. Khi chúng ta có một số thông tin trước mặt cần được trình bày trên một trang web trên Internet, trước hết, chúng ta phải giải thích cho máy tính biết phần thông tin này là gì. Nếu không biết điều này, đơn giản là nó sẽ không thể hiển thị chính xác tất cả nội dung. Do đó, khi chúng tôi tạo một trang web bằng ngôn ngữ HTML, chúng tôi sẽ giải thích cho máy tính phần tử nào sẽ đóng vai trò gì trên trang. Chúng ta phải hiểu rằng nội dung của từng thành phần của trang web phải được đặt trong các thẻ tương ứng với mục đích logic và ngữ nghĩa của chúng. Những thứ kia. các tiêu đề trong văn bản sẽ được chứa trong thẻ h 1-h 6, đoạn văn trong thẻ p, danh sách trong thẻ ul / ol (li), v.v. Mã đáp ứng các điều kiện này được gọi là ngữ nghĩa những thứ kia. mỗi phần tử trên một trang web tương ứng với Chính xácý nghĩa ngữ nghĩa. Bây giờ câu hỏi là liệu chúng ta có thể đặt tiêu đề trên trang web vào thẻ đoạn văn không? Kết luận mà chúng ta phải rút ra từ điều này là ngữ nghĩa của mã và thiết kế là hai thứ khác nhau không nên nhầm lẫn với nhau. Một thiết kế nhất định được gán cho mỗi thẻ, nhưng nó có thể dễ dàng thay đổi, nhưng ý nghĩa ngữ nghĩa của thẻ này không thể thay đổi. Chúng ta có thể đặt tiêu đề trong một đoạn văn, nhưng trong trường hợp này ngữ nghĩa của mã bị mất và văn bản này sẽ mang một ý nghĩa hoàn toàn khác. Do đó, trước khi đưa một phần tử vào bất kỳ thẻ nào, bạn nên suy nghĩ xem nó mang chức năng và ý nghĩa gì trên trang? Một câu hỏi hợp lý được đặt ra: tại sao, trong trường hợp này, chúng ta lại cần ngữ nghĩa mã? Tại sao phải viết tiêu đề thành đề mục, đoạn viết thành đoạn văn, viết tắt thành viết tắt v.v.? Theo tôi, có một số lý do sẽ giúp bạn nghiêng về mã ngữ nghĩa. Đánh dấu ngữ nghĩa mang lại cho chúng ta những gì? 1) Thông tin về cách trình duyệt mặc định sẽ hiển thị phần tử này hoặc phần tử kia trên trang; Ví dụ: chúng ta biết rằng tiêu đề h 1, nếu không có bất kỳ kiểu dáng đặc biệt nào, sẽ xuất hiện trên trang với kích thước 2em và phông chữ đậm. Nhưng theo tôi, đây là lý do không đáng kể nhất. 2) Mã ngữ nghĩa được các công cụ tìm kiếm đọc và hiểu tốt hơn; Người ta tin rằng một trang có đánh dấu ngữ nghĩa, các yếu tố khác không đổi, sẽ xuất hiện cao hơn trong kết quả của công cụ tìm kiếm so với một trang có mã phi ngữ nghĩa. 2) Mã dễ hiểu hơn đối với con người; Đồng ý rằng bạn cần phải hiểu mã, trong đó mọi thứ đều được nêu rõ ràng rằng phần này của văn bản là một đoạn văn, đây là từ viết tắt, v.v. dễ dàng hơn nhiều so với mã, nơi tất cả thông tin đều có một cấu trúc liên tục và không rõ tác giả muốn nói gì. 3) Việc truy cập phần tử dễ dàng hơn và kết quả là tính linh hoạt cao hơn. Bằng cách làm cho mã của bạn có ngữ nghĩa, bạn có thể truy cập các phần tử này dễ dàng hơn nhiều bằng cách sử dụng các công cụ đặc biệt hoạt động với các phần tử trên trang web, chẳng hạn như CSS, Javascript và các phần tử khác. Nếu bạn đặt tất cả các chữ viết tắt trên trang của mình trong thẻ abbr thì trong CSS, để tất cả các chữ viết tắt trên trang của bạn chuyển sang màu đỏ, bạn chỉ cần viết. abbr (màu :đỏ ;) Thay vì đánh dấu và quy định quy tắc này trong HTML cho từng chữ viết tắt riêng lẻ. Đây chỉ là một ví dụ, trong số đó có rất nhiều. Vì những lý do này, chúng ta cần hiểu rằng mã ngữ nghĩa chỉ đơn giản mang lại cho tài liệu của chúng ta nhiều sức mạnh hơn. Chúng tôi có thể sử dụng một số thẻ để cải thiện ngữ nghĩa của trang web và đạt được chức năng cao hơn hoặc chúng tôi không thể sử dụng chúng và không nhận được những lợi ích này. Đó là việc của bạn! Bạn phải đưa ra quyết định này cho chính mình. ,
,
, v.v. nhưng với các thành phần giao diện khác.
Nhưng...
Ví dụ: từ “TOWN” có thể được viết là “20 15 23 14”, nhưng điều này sẽ không gây ra bất kỳ bí mật hoặc khó khăn cụ thể nào trong việc giải mã.
Trong mật mã như vậy, khóa là một cuốn sách nhất định có sẵn cho cả người gửi và người nhận. Mật mã chỉ ra trang sách và dòng, từ đầu tiên là lời giải. Không thể giải mã nếu người gửi và người gửi có sách của các năm xuất bản và phát hành khác nhau. Các cuốn sách phải giống hệt nhau.
Mật mã nổi tiếng. Bản chất của mật mã này là việc thay thế một chữ cái này bằng một chữ cái khác, nằm ở một số vị trí không đổi nhất định ở bên trái hoặc bên phải của nó trong bảng chữ cái. Gaius Julius Caesar đã sử dụng phương pháp mã hóa này khi trao đổi thư từ với các tướng lĩnh của mình để bảo vệ thông tin liên lạc quân sự. Mật mã này khá dễ bị bẻ khóa nên hiếm khi được sử dụng. Dịch chuyển 4. A = E, B= F, C=G, D=H, v.v.
Một ví dụ về mật mã Caesar: hãy mã hóa từ “DEDUCTION”.
Chúng tôi nhận được: GHGXFWLRQ. (thay đổi 3)
Một phương pháp đơn giản khác trong cả việc mã hóa và giải mã. Một từ mã được sử dụng (bất kỳ từ nào không lặp lại các chữ cái). Từ này được chèn vào trước bảng chữ cái và các chữ cái còn lại được thêm vào theo thứ tự, không bao gồm những chữ cái đã có trong từ mã. Ví dụ: từ mã – NOTEPAD.
Nguyên bản: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
Thay thế: N O T E P A D B C F G H I J K L M Q R S U V W X Y Z
Một trong những phương pháp mã hóa đơn giản nhất. Chữ cái đầu tiên của bảng chữ cái được thay thế bằng chữ cái cuối cùng, chữ cái thứ hai bằng chữ áp chót, v.v.
Ví dụ: “KHOA HỌC” = HXRVMXV
Một trong những phương pháp mã hóa đơn giản nhất. Mã hóa sử dụng bảng chữ cái mật mã Bacon: mỗi chữ cái của một từ được thay thế bằng một nhóm gồm năm chữ cái "A" hoặc "B" (mã nhị phân).
Có một số phương pháp mã hóa.
Cũng có thể mã hóa câu bằng mã nhị phân. Các tham số được xác định (ví dụ: “A” - từ A đến L, “B” - từ L đến Z). Vậy BAABAAAAABAAAABABABB là viết tắt của TheScience of Deduction! Phương pháp này phức tạp và tẻ nhạt hơn, nhưng đáng tin cậy hơn nhiều so với tùy chọn theo thứ tự bảng chữ cái.
Mật mã này đã được quân miền Nam sử dụng trong cuộc nội chiến. Mật mã bao gồm 26 mật mã Caesar với các giá trị dịch chuyển khác nhau (26 chữ cái trong bảng chữ cái Latinh). Một tabula orta (hình vuông Vigenère) có thể được sử dụng để mã hóa. Ban đầu, từ khóa và văn bản nguồn được chọn. Khóa từ được viết theo chu kỳ cho đến khi nó lấp đầy toàn bộ chiều dài của văn bản nguồn. Xa hơn dọc theo bảng, các chữ cái của khóa và văn bản gốc giao nhau trong bảng và tạo thành văn bản mã hóa.
Dựa trên đại số tuyến tính. Nó được phát minh vào năm 1929.
Trong mật mã như vậy, mỗi chữ cái tương ứng với một số (A = 0, B = 1, v.v.). Một khối gồm n chữ cái được coi là một vectơ n chiều và được nhân với một ma trận (n x n) mod 26. Ma trận là khóa mật mã. Để có thể giải mã được, nó phải có khả năng đảo ngược trong Z26n.
Để giải mã một tin nhắn, bạn cần biến bản mã trở lại dạng vectơ và nhân với ma trận khóa nghịch đảo. Để biết thông tin chi tiết, Wikipedia có thể trợ giúp.
Mật mã Caesar cải tiến. Khi giải mã, cách dễ nhất là sử dụng công thức:
L= (m+k) modN , L-số của chữ cái được mã hóa trong bảng chữ cái, m-số thứ tự của chữ cái trong văn bản được mã hóa trong bảng chữ cái, số k-shift, N-số chữ cái trong bảng chữ cái.
Đây là trường hợp đặc biệt của mật mã affine.
4 1 2 3 4 1 2 3
0 1 2 3 4
Thường được sử dụng như trò giải trí của trẻ em, nó không gây ra bất kỳ khó khăn cụ thể nào trong việc giải mã. Việc sử dụng tiếng Anh là bắt buộc, tiếng Latin không liên quan gì đến nó.
Trong những từ bắt đầu bằng phụ âm, những phụ âm đó được chuyển về phía sau và thêm “hậu tố” ay. Ví dụ: câu hỏi = câu hỏiquay. Nếu từ bắt đầu bằng một nguyên âm thì ay, way, yay hoặc hay chỉ được thêm vào cuối (ví dụ: a dog = aay ogday).
Trong tiếng Nga, phương pháp này cũng được sử dụng. Người ta gọi khác nhau: “lưỡi xanh”, “lưỡi mặn”, “lưỡi trắng”, “lưỡi tím”. Do đó, trong ngôn ngữ Blue, sau một âm tiết chứa nguyên âm, một âm tiết có cùng nguyên âm được thêm vào, nhưng có thêm phụ âm “s” (vì ngôn ngữ này có màu xanh lam). Ví dụ: Thông tin đi vào nhân của đồi thị = Insiforsomasatsiyasya possotussupasaetse v yadsyarasa tasalasamususasa.
Một lựa chọn khá thú vị.
Tương tự như một bảng kỹ thuật số Có một số phương pháp để sử dụng hình vuông Polybius. Một ví dụ về hình vuông Polybius: chúng ta tạo một bảng 5x5 (6x6 tùy thuộc vào số lượng chữ cái trong bảng chữ cái).
2 PHƯƠNG PHÁP. Các số tương ứng với mỗi chữ cái trong bảng được chỉ định. Số đầu tiên được viết theo chiều ngang, số thứ hai - theo chiều dọc. (A = 11, B = 21...). Ví dụ: CIPHER = 31 42 53 32 51 24
3 PHƯƠNG PHÁP. Dựa trên phương pháp trước đó, chúng ta sẽ cùng nhau viết mã kết quả. 314253325124. Dịch sang trái một vị trí. 142533251243. Một lần nữa chúng ta chia mã theo cặp 14 25 33 25 12 43. Kết quả là chúng ta nhận được mật mã. Các cặp số tương ứng với chữ cái trong bảng: QWNWFO.
Hãy để chúng tôi xác định số lượng các hệ thống khác nhau trong một hệ thống affine. Mỗi khóa được xác định hoàn toàn bởi một cặp số nguyên a và b, chỉ định ánh xạ ax+b. Có các giá trị j(n) có thể có cho a, trong đó j(n) là hàm Euler trả về số số nguyên tố cùng nhau có n và n giá trị cho b có thể được sử dụng bất kể a, ngoại trừ ánh xạ nhận dạng (a=1 b =0), điều này chúng ta sẽ không xem xét.
Điều này mang lại cho j(n)*n-1 các giá trị có thể, không nhiều: với n=33 a có thể có 20 giá trị (1, 2, 4, 5, 7, 8, 10, 13, 14 , 16 , 17, 19, 20, 23, 25, 26, 28, 29, 31, 32), thì tổng số phím là 20*33-1=659. Việc tìm kiếm thông qua số lượng phím như vậy sẽ không gặp khó khăn gì khi sử dụng máy tính.
Nhưng có những phương pháp đơn giản hóa việc tìm kiếm này và có thể được sử dụng khi phân tích các mật mã phức tạp hơn.
Phân tích tần số
Một phương pháp như vậy là phân tích tần số. Sự phân bố các chữ cái trong văn bản mật mã được so sánh với sự phân bố các chữ cái trong bảng chữ cái của tin nhắn gốc. Các chữ cái có tần số cao nhất trong văn bản mật mã được thay thế bằng chữ cái có tần số cao nhất trong bảng chữ cái. Xác suất của một cuộc tấn công thành công tăng lên khi độ dài văn bản mã hóa tăng lên.
Có nhiều bảng khác nhau về sự phân bố các chữ cái trong một ngôn ngữ nhất định, nhưng không có bảng nào chứa thông tin chính xác - thậm chí thứ tự các chữ cái có thể khác nhau trong các bảng khác nhau. Việc phân bổ các chữ cái phụ thuộc rất nhiều vào loại bài thi: văn xuôi, ngôn ngữ nói, ngôn ngữ kỹ thuật, v.v. Hướng dẫn công việc trong phòng thí nghiệm cung cấp các đặc tính tần số cho các ngôn ngữ khác nhau, từ đó có thể thấy rõ các chữ cái I, N, S, E, A (I, N, S, E, A) xuất hiện ở lớp tần số cao của mỗi ngôn ngữ.
Cách bảo vệ đơn giản nhất chống lại các cuộc tấn công đếm tần số được cung cấp bởi hệ thống từ đồng âm (HOMOPHONES) - mật mã thay thế đơn âm trong đó một ký tự văn bản gốc được ánh xạ lên một số ký tự văn bản mã hóa, số lượng của chúng tỷ lệ thuận với tần suất xuất hiện của chữ cái. Khi mã hóa chữ cái của tin nhắn gốc, chúng tôi chọn ngẫu nhiên một trong những chữ cái thay thế nó. Vì vậy, việc chỉ đếm tần số không mang lại cho nhà giải mã bất cứ điều gì. Tuy nhiên, thông tin có sẵn về sự phân bố của các cặp và bộ ba chữ cái trong các ngôn ngữ tự nhiên khác nhau.Ghi chú
Bố cục ngữ nghĩa - nó là gì?
Tại sao và ai cần bố cục ngữ nghĩa?
HTML ngữ nghĩa dành cho nhà phát triển web
Mã ngữ nghĩa cho người dùng
HTML ngữ nghĩa cho máy
Đây là tiêu đề
Tại sao không? Tất nhiên là chúng tôi có thể. Nhiều người sẽ nói, nhưng trong trường hợp này, chúng ta mất đi thiết kế mà các tiêu đề h 1-h 6. Nhưng trên thực tế, thiết kế không đóng bất kỳ vai trò nào ở đây. Sử dụng các kiểu CSS, chúng ta có thể gán bất kỳ đoạn văn nào có thiết kế giống hệt như phần tử h 1-h 6.
viws.ru - Tất cả về công nghệ hiện đại. Sự cố, mạng xã hội, internet, virus
2024 - Bảo lưu mọi quyền