alter PROC [dbo].[Ins_Users]
@UserID int ,
@UserName nvarchar (max) ,
@Password nvarchar (max) ,
@Name nvarchar (100) ,
@Family nchar (10) ,
@LastLoginDate datetime
AS
BEGIN
-----------------------------------------
DECLARE @Passphrase nvarchar(128);
declare @newPass nvarchar(max);
declare @temp varbinary(max);
SET @Passphrase
= 'hadi';
SET @temp= EncryptByPassPhrase(@Passphrase,@Password);
set @newPass=CONVERT(nvarchar(max),@temp);
-----------------------------------------
INSERT INTO [dbo].[Users]
(
[UserID],
[UserName],
[Password],
[Name],
[Family],
[LastLoginDate]
)
VALUES
(
@UserID,
@UserName,
@newPass,
@Name,
@Family,
@LastLoginDate
)
END
我想加密通行证,然后将其存储在数据库中。我在 sql 中使用 EncryptByPassPhrase 函数,它返回一个 varbinary 作为结果,但我的传递列具有 nvarchar 类型,所以我通过 set @newPass=CONVERT(nvarchar(max),@temp); 将结果转换为 nvarchar;当我跟踪它时,加密结果为真,但转换结果为空。