1

私は現在評価を行っており、SQL 暗号化にかなりの問題があります。登録時に varchar であるこれらの列のうち 3 つを暗号化する必要がありますが、AES_256 暗号化のために varbinary に変換する必要があります。キーと証明書は既にセットアップされていますが、現時点でサポートが必要なのは T SQL だけです。

CREATE PROCEDURE dbo.Register
@Email nvarchar (60),
@Password varbinary (256),
@Fname varchar (24),
@Lname varchar (24),
@DoB date,
@HomePhoneNo nvarchar (20),
@MobileNo nvarchar (20),
@SecretQuestion1 varbinary (256),
@SecretQuestion2 varbinary (256)
AS
BEGIN
IF EXISTS (SELECT @Email FROM Customers.Customers)
DROP PROCEDURE dbo.Register
ROLLBACK

OPEN SYMMETRIC KEY Password_Key_DB
        DECRYPTION BY CERTIFICATE PasswordEncryption
        SET NOCOUNT ON
INSERT INTO Customers.Customers
VALUES 
(
@Email, 
ENCRYPTBYKEY(Key_GUID('Password_Key_DB'), @Password, CONVERT (varchar, @Password)),
@Fname, 
@Lname, 
@DoB,
@HomePhoneNo, 
@MobileNo,
ENCRYPTBYKEY(Key_GUID('Password_Key_DB'), @SecretQuestion1, CONVERT (varchar,                 @SecretQuestion1)),
ENCRYPTBYKEY(Key_GUID('Password_Key_DB'), @SecretQuestion2, CONVERT (varchar,     @SecretQuestion2))
)
END
GO
4

0 に答える 0