并行使用多个DB,需要使用散列密码初始化一些记录.在MS SQL server
那里有方便的功能,允许动态哈希:
HashBytes('SHA1', CONVERT(nvarchar(32), N'admin'))
是否有类似的功能SQLite
?
如果没有,这是最简单的解决方法(例如从中选择SQL server
并以某种方式将其插入SQLite
表中)?
首选的散列算法是SHA1
,密码存储在一BLOB
列中.
更新:我在当前项目中使用C#语言.
SQLite3中没有内置这样的功能.
但是你可以定义一个用户函数,例如,sqlite3_create_function
如果你正在使用C接口,并用它实现SHA-1.(但是如果你有一个可编程接口,也许你可以在SQL引擎之外使用SHA-1密码.)
您也可以尝试查找/创建扩展并使用该load_extension
功能加载,但我没有相关经验.
编辑:
请参阅SQLiteFunction上的答案Simple Not Working,了解如何System.Data.SQLite
在C#中定义自定义函数.
使用System.Security.Cryptography.SHA1计算SHA-1哈希.