SQLite中的SHA1哈希:如何?

Bre*_*eak 6 c# sqlite hash cryptography sha1

并行使用多个DB,需要使用散列密码初始化一些记录.在MS SQL server那里有方便的功能,允许动态哈希:


HashBytes('SHA1', CONVERT(nvarchar(32), N'admin'))
Run Code Online (Sandbox Code Playgroud)

是否有类似的功能SQLite

如果没有,这是最简单的解决方法(例如从中选择SQL server并以某种方式将其插入SQLite表中)?

首选的散列算法是SHA1,密码存储在一BLOB列中.

更新:我在当前项目中使用C#语言.

ken*_*ytm 10

SQLite3中没有内置这样的功能.

但是你可以定义一个用户函数,例如,sqlite3_create_function如果你正在使用C接口,并用它实现SHA-1.(但是如果你有一个可编程接口,也许你可以在SQL引擎之外使用SHA-1密码.)

您也可以尝试查找/创建扩展并使用load_extension功能加载,但我没有相关经验.

编辑:


小智 6

注意到 sqlite 确实sha1()在 2017 年添加了扩展

https://www.sqlite.org/src/file/ext/misc/sha1.c

尽管默认情况下它可能未启用。


Mat*_*hen 5

SQLite 没有附带 SHA1,但添加起来相对容易。您没有说明您正在使用什么语言,但您可以查看create_functionsqlite3_result的 C 文档。您还可以查看此示例,了解如何使用 Ruby 将 SHA1 添加到 SQLite。

对于System.Data.SQLite,它们被称为用户定义函数。您可以在主站点上查看此示例。