为什么aes\u encrypt不能在sqlserver上工作

qni6mghb  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(315)

我已经在xampp上的phpmyadmin上测试了aesèu encrypt(str,key),它可以工作。但在microsoft sql server上尝试执行相同操作时,出现一个错误,即“aes\u encrypt”不是可识别的内置函数名。我是否需要安装aes\u encrypt作为一个函数。我不确定我做错了什么。

6za6bjd0

6za6bjd01#

你可能在找 ENCRYPTBYKEY 在sql server上,例如:

USE AdventureWorks2012;  
GO  

-- Create a column in which to store the encrypted data.  
ALTER TABLE HumanResources.Employee  
    ADD EncryptedNationalIDNumber varbinary(128);   
GO  

-- Open the symmetric key with which to encrypt the data.  
OPEN SYMMETRIC KEY SSN_Key_01  
   DECRYPTION BY CERTIFICATE HumanResources037;  

-- Encrypt the value in column NationalIDNumber with symmetric key  
-- SSN_Key_01. Save the result in column EncryptedNationalIDNumber.  
UPDATE HumanResources.Employee  
SET EncryptedNationalIDNumber  
    = EncryptByKey(Key_GUID('SSN_Key_01'), NationalIDNumber);  
GO

使用的加密算法取决于提供的密钥,因此您需要使用 CREATE SYMMETRIC KEY 创建用于 AES-256 算法,例如:

CREATE SYMMETRIC KEY JanainaKey09
WITH ALGORITHM = AES_256
ENCRYPTION BY CERTIFICATE Shipping04;

相关问题