28.07.2020 04:15

Маскировка реальных адресов электронной почты в MySQL/MariaDB

Маскировка реальных адресов электронной почты в MySQL/MariaDB

В этой статье я объясню, как замаскировать реальные адреса электронной почты в MySQL/MariaDB. Это может быть использовано, чтобы скрыть информацию пользователя в базе данных. Вы можете сохранить адрес электронной почты домена или полностью скрыть его. Мы будем использовать функцию UUID() для генерации уникального адреса электронной почты. Давайте рассмотрим пример того, как замаскировать адреса электронной почты без скрытия домена.

Сначала создадим простую таблицу `emails`:

--
-- Table structure for table `emails`
--
CREATE TABLE IF NOT EXISTS `emails` (
	`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
	`email` VARCHAR(255) NOT NULL,
	PRIMARY KEY (`id`)
);

--
-- Dumping data for table `emails`
--
INSERT INTO `emails` (`email`)
VALUES
	('example@gmail.com'),
	('example2@yahoo.com'),
	('example3@msn.com'),
	('example4@outlook.com'),
	('example5@gmail.com');

Используйте следующий запрос для обновления адресов электронной почты уникальными значениями (не скрывая домен):

UPDATE `emails` SET `email` = CONCAT(LEFT(UUID(), 8), '@', SUBSTRING_INDEX(`email`, '@', -1));

Теперь давайте проверим результат:

SELECT * FROM `emails`;

--
--	[output]
--
--	id	email
--	1	a46a97a5@gmail.com
--	2	a46a99a1@yahoo.com
--	3	a46a9a1f@msn.com
--	4	a46a9a6d@outlook.com
--	5	a46a9ab7@gmail.com

Также рассмотрим пример того, как полностью замаскировать адреса электронной почты. Используйте для этого следующий запрос:

UPDATE `emails` SET `email` = CONCAT(LEFT(UUID(), 8), '@example.com');

Теперь давайте проверим результат:

SELECT * FROM `emails`;

--
--	[output]
--
--	id	email
--	1	fd046e18@example.com
--	2	fd0477c8@example.com
--	3	fd047a25@example.com
--	4	fd047be6@example.com
--	5	fd047d17@example.com

Другие статьи