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功能加载,但我没有相关经验.
编辑:
System.Data.SQLite在C#中定义自定义函数.小智 6
注意到 sqlite 确实sha1()在 2017 年添加了扩展
https://www.sqlite.org/src/file/ext/misc/sha1.c
尽管默认情况下它可能未启用。
SQLite 没有附带 SHA1,但添加起来相对容易。您没有说明您正在使用什么语言,但您可以查看create_function和sqlite3_result的 C 文档。您还可以查看此示例,了解如何使用 Ruby 将 SHA1 添加到 SQLite。
对于System.Data.SQLite,它们被称为用户定义函数。您可以在主站点上查看此示例。