SQL 服务器 - 如何将散列密码插入 table?
SQL Server - How to insert a hashed password to a table?
抱歉我的无知,但我想将散列密码存储在我的数据库中,
如何使用 HASHBYTES
方法将散列密码存储在 Users
table 中?
CREATE TABLE [Users](
EmailAddress NVARCHAR(320) UNIQUE,
UserID INT IDENTITY(1,1) PRIMARY KEY,
UserPassword NVARCHAR(32), -- I Edited the length
FirstName VARCHAR(256) not null,
LastName VARCHAR(256) not null,
MobileNumber BIGINT,
)
--我查了一下,发现这是散列密码的方法
declare @afterhash varbinary(256) = HASHBYTES('SHA2_256', 'P@ssw0rd')
但是我该如何将它们结合起来呢?
声明@Users table (passwordColumn NVARCHAR(32));
插入@Users 值 (HASHBYTES('SHA2_256','Password@1234.'));
select 来自@Users 的 HASHBYTES('SHA2_256', passwordColumn);
如前所述,我不明白这里的问题。只需在参数化的 INSERT
:
中使用 HASHBYTES
INSERT INTO dbo.Users (EmailAddress, UserPassword, FirstName, LastName, MobileNumber)
VALUES(@EmailAddress, HASHBYTES('SHA2_256',@Password), @FirstName, @LastName, @MobileNumber);
旁注:正如我在其他 中提到的,bigint
不是电话号码的正确选择。 Phone 数字可以以 0
开头并包含数字中的其他字符。像 '01234567890'
这样的值将更改为 1234567890
,像 '+441234567890'
这样的数字将更改为 441234567890
,而像 '(01234) 567890'
这样的数字将无法 INSERT
完全
抱歉我的无知,但我想将散列密码存储在我的数据库中,
如何使用 HASHBYTES
方法将散列密码存储在 Users
table 中?
CREATE TABLE [Users](
EmailAddress NVARCHAR(320) UNIQUE,
UserID INT IDENTITY(1,1) PRIMARY KEY,
UserPassword NVARCHAR(32), -- I Edited the length
FirstName VARCHAR(256) not null,
LastName VARCHAR(256) not null,
MobileNumber BIGINT,
)
--我查了一下,发现这是散列密码的方法
declare @afterhash varbinary(256) = HASHBYTES('SHA2_256', 'P@ssw0rd')
但是我该如何将它们结合起来呢?
声明@Users table (passwordColumn NVARCHAR(32));
插入@Users 值 (HASHBYTES('SHA2_256','Password@1234.'));
select 来自@Users 的 HASHBYTES('SHA2_256', passwordColumn);
如前所述,我不明白这里的问题。只需在参数化的 INSERT
:
HASHBYTES
INSERT INTO dbo.Users (EmailAddress, UserPassword, FirstName, LastName, MobileNumber)
VALUES(@EmailAddress, HASHBYTES('SHA2_256',@Password), @FirstName, @LastName, @MobileNumber);
旁注:正如我在其他 bigint
不是电话号码的正确选择。 Phone 数字可以以 0
开头并包含数字中的其他字符。像 '01234567890'
这样的值将更改为 1234567890
,像 '+441234567890'
这样的数字将更改为 441234567890
,而像 '(01234) 567890'
这样的数字将无法 INSERT
完全