并行处理多个数据库,需要用散列密码初始化一些记录。在 MS SQL server
中,有一些方便的函数可以动态散列:
HashBytes('SHA1', CONVERT(nvarchar(32), N'admin'))
SQLite
有没有类似的功能?
如果不是,哪个是最简单的解决方法(例如从 SQL server
中选择并以某种方式将其插入到 SQLite
表中)?
首选的散列算法是 SHA1
,密码存储在 BLOB
列中。
更新:我在当前项目中使用C#语言。
最佳答案
SQLite3 中没有内置这样的函数。
但是你可以定义一个用户函数,例如与 sqlite3_create_function
如果您使用的是 C 接口(interface),并用它实现 SHA-1。 (但如果您有一个可编程接口(interface),也许您可以在 SQL 引擎之外对密码进行 SHA-1。)
您也可以尝试查找/创建扩展并加载 the load_extension
function ,但我没有这方面的经验。
编辑:
- 参见 this answer on SQLiteFunction Simple Not Working了解如何在 C# 中使用
System.Data.SQLite
定义自定义函数。 - 使用System.Security.Cryptography.SHA1计算 SHA-1 哈希值。
关于c# - SQLite : how? 中的 SHA1 哈希,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3179021/