在数据库(最好是SQL Server 2005)中存储密码的首选方法/数据类型是什么?我在我们的几个应用程序中这样做的方式是,首先使用.NET加密库,然后将它们以二进制形式存储在数据库中(16).这是首选方法吗?或者我应该使用不同的数据类型或分配比16更多的空间?

推荐答案

我将密码的加盐哈希类似功能存储在数据库中,而从不存储密码本身,然后总是将该哈希与用户传入的生成的哈希进行比较.

在任何地方存储文字密码数据都太危险了.这使得恢复变得不可能,但当有人忘记或丢失密码时,您可以通过一些判断创建新密码.

Database相关问答推荐

为什么Hibernate会为@JoinTable的双向@OneToMany关系生成一个复杂的子查询?

删除Postgres中的JSONB列并在不停机的情况下回收空间

将一个表中的多个列连接到另一个表中的单个列

如何在 SQL Server 中将索引从一个表复制到另一个表

无法使用命令行运行 liquibase

更新查询 PHP MySQL

如何将开发数据库更改移动到生产数据库?

group by会自动保证order by吗?

NoSql DB 和 OO Db 有什么区别?

向表中添加大量索引是否有缺点?

我们如何保存在 sqlite3 中创建的数据库

日期范围重叠判断约束

如何在一行中显示 redis 中的所有键?

JPA:处理 OptimisticLockException 的模式

使用多个数据库模式的 JPA

当另一个进程修改数据库时Hibernate二级缓存失效

谁有维基数据库?

我如何做大于/小于使用 MongoDB?

PostgreSQL 的示例数据库

复制没有 LOCK 权限的 postgres 数据库