Сокрытие BLACKLISTED слова в WordPress С ROT13

Бесчисленные алгоритмы шифрования данных существуют в области компьютерных наук.Один из менее известных и менее распространенных кодировок это ROT13, производная Цезарь cypher 1 техники шифрования .

В этом уроке мы узнаем, о шифровании ROT13 и как она работает.Мы увидим, как текст (или строки) может быть программно кодируется в ROT13 с помощью PHP.Наконец, мы закодировать плагин WordPress, который сканирует почту для блокированных слова и заменяет любые шифрования ROT13 .

Если у вас есть блог, на котором несколько авторов или определенная группа людей иметь привилегию публикации сообщения, то плагин, который шифрует или полностью удаляет неуместные слова может прийти в handy

Прежде чем мы начнем let’ с Ясно что-то о ROT13.Следует never будет использоваться для шифрования конфиденциальных данных.Хотя считается, технику шифрования, это “ Привет World” пример шифрования.Это может быть разбит очень легко и, таким образом, никогда не используется на данных, которые шифруются в целях безопасности.Так наша цель isn’ т, чтобы защитить данные, чтобы скрыть ненормативную лексику, он будет делать только штрафом для нашего примера .

Introduction

ROT13 (сокращенно “повернуть на 13 мест,” иногда сокращенно РОТ-13) простая техника шифрования для английского, который заменяет каждую букву с одной 13 мест вперед или назад по алфавита.Таким образом, становится N, B становится O, и так далее до М, которое становится Z. Затем последовательность переходит к началу алфавита: N становится А, О становится Б и так далее до Z, которая становится М.

Главное преимущество ROT13 над другими rot(N) методы (где “N” является целым числом, которое обозначает количество мест вниз алфавита в шифровальщика шифрования Цезаря) является то, что «само-обратная,” это означает, что то же самоеАлгоритм применяется для шифрования и дешифрования данных .

Ниже приведена таблица ROT13 для удобства .

| 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 |
--------------------------------------------------------------------------------------------------------  
| N | O | P | Q | R | S | T | U | V | W | X | Y | Z | A | B | C | D | E | F | G | H | I | J | K | L | M |

Если мы зашифрованы домен smashingmagazine.com в ROT13, результат будет fznfuvatzntnmvar.pbz, и предложение “? Почему куриное пересечь дорогу” станет “Июль qvq гур puvpxra pebff гур ebnq?”

Обратите внимание, что только буквы в алфавите страдают от ROT13.Числа, символы, пробелы и все остальные символы остаются неизменными .

Преобразование строк для ROT13 В PHP

PHP включает в себя функцию, str_rot13(), для преобразования строки в его ROT13-закодированного значения.Для кодирования текста в ROT13 использовать эту функцию, необходимо передать текст в качестве аргумента в функцию .

<?php

echo str_rot13('smashingmagazine.com'); // fznfuvatzntnmvar.pbz

echo str_rot13('The best web design and development blog'); // Gur orfg jro qrfvta naq qrirybczrag oybt

Использование ROT13 В WordPress

Вооружившись этими знаниями, я думал о смысле это может быть удобно в WordPress.Я закончил тем, что создал плагин, который кодирует черный список слов, найденных в должности с помощью ROT13 .

Плагин состоит из textearea области (находится на странице настроек плагина), в котором вы задаете в черный список слова, которые затем сохраняются в базе данных для последующего использования вWordPress сообщений .

Без дальнейших суетой, давайте начнем кодирования плагин .

Настройка Plugin

Во-первых, включить файл header 2 .

<?php

/*
Plugin Name: Rot13 Words Blacklist
Plugin URI: http://smashingmagazine.com/
Description: A simple plugin that detects and encrypts blacklisted words in ROT13
Version: 1.0
Author: Agbonghama Collins
Author URI: http://w3guy.com
Text Domain: rot13
Domain Path: /lang/
License: GPL2
*/

Как уже упоминалось, плагин будет иметь страницу настроек с textarea поле, которое собирает и сохраняет в черный список слова в базу данных WordPress “(в частности, options таблица) .

Ниже скриншот, какие настройки плагина (или администратора) страница будет выглядеть .

Settings page of the plugin. 3
( Просмотреть в version 4 )

Теперь, когда мы знаем, что страница параметров будет выглядеть, давайте построить его с помощью __35 WordPress “| Настройки API 5

Строительство Page

Во-первых, мы создаем пункт подменю в главном меню “Настройки” с помощью add_options_page(), с его материнской функции подключены к admin_menu действие .

add_action( 'admin_menu', 'rot13_plugin_menu' );

/**
 * Add submenu to main Settings menu
 */
function rot13_plugin_menu() {
	add_options_page(
		__( 'Rot13 Blacklisted Words', 'rot13' ),
		__( 'Rot13 Blacklisted Words', 'rot13' ),
		'manage_options',
		'rot13-words-blacklist',
		'rot13_plugin_settings_page'
	);
}

Пятый параметр add_options_page() это имя функции (rot13_plugin_settings_page), которая призвана выводить содержимое страницы .

Ниже код rot13_plugin_settings_page() .

/**
 * Output the contents of the settings page.
 */
function rot13_plugin_settings_page() {
	echo '<div class="wrap">';
	echo '<h2>', __( 'Rot13 Blacklisted Words', 'rot13' ), '</h2>';
	echo '<form action="options.php" method="post">';
	do_settings_sections( 'rot13-words-blacklist' );
	settings_fields( 'rot13_settings_group' );
	submit_button();
}

Далее мы добавляем новый раздел на страницу “Настройки” с add_settings_section().textarea поле мы уже упоминали ранее, будут добавлены в этот раздел add_settings_field().Наконец, параметры будут зарегистрированы с register_setting() .

Ниже код add_settings_section(), add_settings_field() и register_setting() .

	// Add the section
	add_settings_section(
		'rot13_setting_section',
		'',
		'rot13_setting_section_callback_function',
		'rot13-words-blacklist'
	);


	// Add the textarea field to the section.
	add_settings_field(
		'blacklisted_words',
		__( 'Blacklisted words', 'rot13' ),
		'rot13_setting_callback_function',
		'rot13-words-blacklist',
		'rot13_setting_section'
	);

	// Register our setting so that $_POST handling is done for us
	register_setting( 'rot13_settings_group', 'rot13_plugin_option', 'sanitize_text_field' );

Три функции выше, должны быть заключены в функции и подключили к admin_init действия, например, так:

/**
* Hook the Settings API to 'admin_init' action
*/
function rot13_settings_api_init() {
// Add the section
add_settings_section(
'rot13_setting_section',
'',
'rot13_setting_section_callback_function',
'rot13-words-blacklist'
);

// Add the textarea field ...

Если вы хотите прочитать полностью статью, посетите сайт наших спонсоров

Comments are closed.