– sqlserver对数据进行加密、解密

– 创建测试表

CREATE TABLE TBLUser 
(    
    Name             nvarchar(30),     
    Password         varbinary(1000)
)
  • 1
  • 2
  • 3
  • 4
  • 5

– 创建数据库主**

CREATE master key  ENCRYPTION BY PASSWORD ='passW@ord'
  • 1

– 创建证书

CREATE CERTIFICATE TestCert with SUBJECT = 'Test Certificate'
  • 1

– 创建对称**

CREATE SYMMETRIC KEY TestSymmetric WITH ALGORITHM = AES_256 ENCRYPTION BY CERTIFICATE TestCert 
  • 1

– 使用对称秘钥加密数据

OPEN SYMMETRIC KEY TestSymmetric DECRYPTION BY CERTIFICATE TestCert;
INSERT INTO TBLUser values('张三', ENCRYPTBYKEY(Key_Guid(N'TestSymmetric'), '123456'));
CLOSE SYMMETRIC KEY TestSymmetric;
  • 1
  • 2
  • 3

– 查看加密后的数据

SELECT * FROM TBLUser
  • 1

– 解密数据

OPEN SYMMETRIC KEY TestSymmetric DECRYPTION BY CERTIFICATE TestCert;
SELECT Name, CAST(DecryptByKey(password) as varchar(100)) Password FROM TBLUser;
CLOSE SYMMETRIC KEY TestSymmetric;
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐