sql server中是否存在加密数据的算法。我有一个密码字段,我需要加密,但我必须加密数据一旦在存储过程中传递。这意味着我无法从我的c#代码传递加密数据。
CREATE PROC saveData(@p1 VARCHAR(50),
@p2 VARCHAR(50))
AS
BEGIN
DECLARE @encryptedP1 VARCHAR(50)
SET @encryptedP1=dbo.fnEncrypt(@p1) --ENCRYPTING THE DATA WITH AN INBUILT FUNCTION
INSERT INTO table1
(column1,
column2)
VALUES (@encryptedP1,
@p2)
END
答案 0 :(得分:7)
这是一个非常快速的例子。它适用于非对称密钥。我希望这可以提供帮助。
首先关闭:使用以下代码创建非对称密钥:
USE [yourDB]
GO
CREATE ASYMMETRIC KEY ClaveAsym
WITH ALGORITHM = RSA_2048 ---->Take a look in this type of algorithms
ENCRYPTION BY PASSWORD = 'yourKey'
GO
请记住这一点,您必须始终声明一个您想要解密或加密
的变量DECLARE @KEYID INT
SET @KEYID = AsymKey_ID('ClaveAsym')
解密数据
SELECT columnA, CAST(DecryptByAsymKey(@keyid, columnUser, N'yourKey') AS VARCHAR(100)),
CONVERT(VARCHAR(MAX), DECRYPTBYASYMKEY(@keyId, columnPass, N'yourKey'))
FROM yourTable
加密数据
DECLARE @User VARCHAR(MAX), @pass VARCHAR(MAX)
SET @User = 'yourUser'
sET @pass = 'yourPass'
DECLARE @KEYID INT SET @KEYID = AsymKey_ID('ClaveAsym')
INSERT INTO yourTable( User, passw) VALUES EncryptByAsymKey (@keyid, @User ), EncryptByAsymKey (@keyid, @pass))
答案 1 :(得分:3)
答案 2 :(得分:0)
我建议用盐腌的sha1或md5
CONVERT(VARCHAR(32), HashBytes('MD5', 'email@dot.com'), 2)
虽然散列在技术上不是加密的。