шифрование или криптография для хранения конфиденциальных данных - PullRequest
1 голос
/ 05 ноября 2019

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

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

$secret = 'xxxxx';

$key   = random_bytes(SODIUM_CRYPTO_SECRETBOX_KEYBYTES);
$nonce = random_bytes(SODIUM_CRYPTO_SECRETBOX_NONCEBYTES);

// Encrypt
$ciphertext = sodium_crypto_secretbox($msg, $nonce, $key);
// Decrypt
$plaintext = sodium_crypto_secretbox_open($ciphertext, $nonce, $key);

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

дополнительная информация

Я использую PHP 7.3 и laravel для этого проекта, и яхочу создать пакет для любого кошелька криптовалюты, моя эта информация хороша, вы можете помочь мне лучше

1 Ответ

2 голосов
/ 06 ноября 2019

Вам необходимо понять, как работает шифрование, на самом деле существует два типа криптографии

  1. Симметричная криптография
  2. Асимметричная криптография (открытый ключ)

Пожалуйста, проверьте здесь: http://books.gigatux.nl/mirror/securitytools/ddu/ch09lev1sec1.html

Основываясь на своем коде, вы используете симметричную криптографию, в которой вы использовали общий ключ. Поскольку вы используете laravel, вы можете хранить секретный ключ в ENV, обязательно отключив отладку. Поскольку вы используете laravel, вы можете использовать встроенный метод шифрования / дешифрования, найденный здесь: https://laravel.com/docs/5.7/encryption

Laravel Встроенное шифрование использует OpenSSL для обеспечения шифрования AES-256 и AES-128 и всех Laravel. Зашифрованные значения подписываются с использованием кода аутентификации сообщения (MAC), поэтому их базовое значение не может быть изменено после шифрования.

С уважением

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...