Man*_*wat 5 sql database security encryption
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
Run Code Online (Sandbox Code Playgroud)
这是一个非常快速的例子.它适用于非对称密钥.我希望这可以提供帮助.
首先:使用以下代码创建非对称密钥:
USE [yourDB]
GO
CREATE ASYMMETRIC KEY ClaveAsym
WITH ALGORITHM = RSA_2048 ---->Take a look in this type of algorithms
ENCRYPTION BY PASSWORD = 'yourKey'
GO
Run Code Online (Sandbox Code Playgroud)
请记住,您必须始终声明要解密或加密的变量
DECLARE @KEYID INT
SET @KEYID = AsymKey_ID('ClaveAsym')
Run Code Online (Sandbox Code Playgroud)
解密数据
SELECT columnA, CAST(DecryptByAsymKey(@keyid, columnUser, N'yourKey') AS VARCHAR(100)),
CONVERT(VARCHAR(MAX), DECRYPTBYASYMKEY(@keyId, columnPass, N'yourKey'))
FROM yourTable
Run Code Online (Sandbox Code Playgroud)
加密数据
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))
Run Code Online (Sandbox Code Playgroud)
我建议使用 salted sha1 或 md5
CONVERT(VARCHAR(32), HashBytes('MD5', 'email@dot.com'), 2)
Run Code Online (Sandbox Code Playgroud)
尽管散列在技术上并不是加密。
归档时间: |
|
查看次数: |
25186 次 |
最近记录: |