CREATE PROCEDURE SP_INS_PUBLIC_NHANVIEN @MANV VARCHAR(20) , @HOTEN NVARCHAR(100), @EMAIL VARCHAR (20), @LUONGCB VARCHAR(100), @TENDN NVARCHAR(100), @MK VARCHAR(100) AS BEGIN SET NOCOUNT ON; DECLARE @SQL NVARCHAR(MAX); IF ASYMKEY_ID(@MANV) IS NULL BEGIN SET @SQL = 'CREATE ASYMMETRIC KEY ' + QUOTENAME(@MANV) + ' ' + 'WITH ALGORITHM = RSA_2048 ' + 'ENCRYPTION BY PASSWORD = ' + QUOTENAME(@MK , NCHAR(39)) EXEC (@SQL) END DECLARE @MATKHAU_SHA1 VARBINARY(MAX); SET @MATKHAU_SHA1 = CONVERT(VARBINARY(MAX),HASHBYTES('SHA1', @MK)); DECLARE @LUONG_RSA512 VARBINARY(MAX); SET @LUONG_RSA512 = ENCRYPTBYASYMKEY(ASYMKEY_ID(@MANV), @LUONGCB); DECLARE @PUBKEY NVARCHAR(20); SELECT @PUBKEY = CONVERT(NVARCHAR(20),@MANV); INSERT INTO DBO.NHANVIEN VALUES (@MANV, @HOTEN, @EMAIL, ENCRYPTBYASYMKEY(ASYMKEY_ID(@MANV), @LUONGCB), @TENDN, @MATKHAU_SHA1,@PUBKEY); END GO