CREATE ASYMMETRIC KEY Asym_EPassword
WITH ALGORITHM = RSA_512
ENCRYPTION BY PASSWORD = testdemo123
我已经使用上面的加密非对称密钥加密了我的表的Password
列。在SQL Server查询中解密密码
现在我想我的解密查询select
内password
列
任何人都可以建议如何做到这一点?
CREATE ASYMMETRIC KEY Asym_EPassword
WITH ALGORITHM = RSA_512
ENCRYPTION BY PASSWORD = testdemo123
我已经使用上面的加密非对称密钥加密了我的表的Password
列。在SQL Server查询中解密密码
现在我想我的解密查询select
内password
列
任何人都可以建议如何做到这一点?
SQLFiddle不要让用户创建非对称密钥,因此对于演示复制/粘贴这对你自己的SSMS:
CREATE ASYMMETRIC KEY Asym_EPassword
WITH ALGORITHM = RSA_512
ENCRYPTION BY PASSWORD = 'testDemo123!'
DECLARE @PlainText NVARCHAR(100)
DECLARE @CipherText VARBINARY(MAX)
SET @PlainText = 'AAAAA'
SELECT @CipherText = EncryptByAsymKey(AsymKey_ID('Asym_EPassword'), @PlainText);
SELECT @CipherText;
SELECT CONVERT(NVARCHAR(100), DecryptByAsymKey(AsymKey_ID('Asym_EPassword'), @CipherText, N'testDemo123!'));
我已经使用了相同的查询,但明文字段为空值 –
@ user1826753检查您是否正确编写了密钥名称,并且确定使用此密钥对数据进行了加密? –
你并不意味着解密密码。你的意思是加密字符串以对照存储在数据库中的加密值进行测试。如果某个东西可以被解密,那么它就没有加密的意义,它就不会安全。 – Ben
虽然我同意你不应该解密密码。我认为最后一句话“如果某件事可以被解密,那么没有点加密它”是有点错误的。加密应该是可逆的,散列是一种单向机制。 –
我只是要求检索解密密码在选择查询不保存在数据库中 –