解密列时的空值

时间:2014-12-10 09:40:41

标签: sql sql-server

我有一个程序,我通过加密插入了值。但是当我尝试解密该值时,它没有被正确解密。通过程序插入加密值时,请帮助我做什么。

代码是:

create TABLE customer(
customer_id INT IDENTITY(1,1) CONSTRAINT pk_cust_id PRIMARY KEY,
salary varbinary(300)
)

create symmetric key sk_customer with algorithm = aes_192 encryption by password = 'abc@1234';
open symmetric key sk_customer decryption by password = 'abc@1234';

INSERT INTO customer(salary) VALUES(encryptbykey(key_guid('sk_customer'),'123.001254', 1, '1'))

create PROCEDURE [dbo].[usp_InsertCustomer]
(
@salary varbinary(300)
)
as
begin
open symmetric key sk_customer decryption by password = 'abc@1234';

INSERT INTO customer(salary)VALUES (
encryptbykey(key_guid('sk_customer '),@salary,1,CONVERT(VARCHAR(10),@@IDENTITY))
)
SELECT @@IDENTITY
close symmetric key sk_customer;   
end
GO

EXEC usp_InsertCustomer
        @salary = 852.369
SELECT customer_id,convert(varchar(max),decryptbykey(salary,1, convert(varchar(10),customer_id))) as 'Salary' FROM customer

0 个答案:

没有答案