用于存储敏感数据的加密或密码术

我进行了一些搜索,以找出在数据库中存储敏感数据的最佳方法是什么? 对于一个项目,我需要将加密货币钱包的秘密密钥存储在DB中,而无需咨询就可以完成这项工作。

我尝试使用钠盐,并且可能使用多种方法进行加密,但是我不知道什么是最佳和最安全的方法

$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,$key);

如果您具有加密和加密数据的经验,请指导我。

其他信息

我为此项目使用PHP 7.3和laravel,我想为任何一个加密货币钱包创建一个程序包,我的信息对你有帮助,可以帮助我更好

ahuo1987 回答:用于存储敏感数据的加密或密码术

您需要了解加密的工作原理,实际上,加密有两种类型

  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)签名,因此一旦加密,它们的基础值就无法修改。

本文链接:https://www.f2er.com/3157673.html

大家都在问