Как реализовать шифрования эллиптической кривой для базы данных? Не знаю как реализовать шифрование алгоритмом эллиптических кривых базы данных, в встроенных методах не нашел, ни в одной из СУБД(oracle,microsoft sql server,mysql), там много методов шифрования, но ни в одном нету реализации эллиптической кривой. Получается нужно создать процедуру, которая при Insert-е данных заносились в базу данных в шифрованном виде и select-а данных она выводилась бы дешифрованном виде, к сожалению не смог найти хотя бы наброски может, кто нибудь уже делал? или может поделиться опытом в этом деле?

21 Авг 2019 в 07:12
236 +1
0
Ответы
1

Для реализации шифрования с использованием алгоритма эллиптических кривых в базе данных, вам потребуется использовать специализированные криптографические библиотеки. Например, библиотека OpenSSL предоставляет возможность работы с эллиптическими кривыми и реализацию алгоритмов шифрования на них.

Для создания процедур шифрования и дешифрования в БД, вы можете написать хранимые процедуры на языке SQL или использовать язык программирования, поддерживаемый вашей СУБД, для создания пользовательских функций.

В качестве примера, вот как могут выглядеть процедуры шифрования и дешифрования на эллиптической кривой с использованием OpenSSL в MySQL:

DELIMITER //
CREATE FUNCTION encrypt_datadataVARCHAR(255),publickeyVARCHAR(255)data VARCHAR(255), public_key VARCHAR(255)dataVARCHAR(255),publick eyVARCHAR(255) RETURNS VARCHAR255255255 BEGIN
DECLARE encrypted_data VARCHAR255255255;
SET @cmd = CONCAT("openssl ec -in <(echo '", data, "') -pubin -inkey <(echo '", public_key, "') | openssl base64");
SET encrypted_data = EXECUTE COMMAND @cmd;
RETURN encrypted_data;
END//
CREATE FUNCTION decrypt_dataencrypteddataVARCHAR(255),privatekeyVARCHAR(255)encrypted_data VARCHAR(255), private_key VARCHAR(255)encryptedd ataVARCHAR(255),privatek eyVARCHAR(255) RETURNS VARCHAR255255255 BEGIN
DECLARE decrypted_data VARCHAR255255255;
SET @cmd = CONCAT("echo '", encrypted_data, "' | openssl base64 -d | openssl ec -inkey <(echo '", private_key, "') -decrypt");
SET decrypted_data = EXECUTE COMMAND @cmd;
RETURN decrypted_data;
END//
DELIMITER ;

Это простой пример, и вы должны настроить его с учетом ваших требований и используемой базы данных. Не забудьте также обеспечить сохранность ключей шифрования и контроль доступа к данным.

20 Апр 2024 в 13:05
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир