MariaDB 中的 RANDOM_BYTES 或 CRYPT_GEN_RANDOM 等效项

问题描述 投票:0回答:2

问题

MariaDB 中是否有 MySQL

RANDOM_BYTES(len)
或 MSSQL
CRYPT_GEN_RANDOM(len)
的替代品?

我通读了他们的文档,但我只发现了

rand(len)
,它在生成随机字节方面不具有加密安全性。

问题

根据本文档,当前发布的 MariaDB 版本(10.3)不支持

RANDOM_BYTES(len)
https://mariadb.com/kb/en/library/function-differences- Between-mariadb-103-and-mysql-57/

限制

如果可能,请将代码保留在 MariaDB 中,出于安全原因,我不想依赖 PHP 或任何其他外部函数。

random mariadb
2个回答
2
投票

看来

RANDOM_BYTES(length)
自 10.10.0(预览版)起可用,请检查 文档


0
投票

不幸的是,根据与 MariaDB 支持人员的交谈,目前 MariaDB 中没有

RANDOM_BYTES
等效项。请参阅 https://jira.mariadb.org/browse/MDEV-27002 了解与为用户生成随机密码有关的半相关票证。

为了解决这个问题,您可以做的是在 C 中创建一个自定义 UDF(用户定义函数),它利用加密安全库为您拥有的任何用例生成一系列随机字节。从技术上讲,这将代码保留在“MariaDB 内”,尽管您需要编写自己的函数来调用。请参阅 https://mariadb.com/kb/en/creating-user-defined-functions/ 了解更多信息。

© www.soinside.com 2019 - 2024. All rights reserved.