7

データを暗号化するためのアルゴリズムがSQLサーバーに存在しますか。暗号化する必要があるパスワード フィールドがありますが、データがストアド プロシージャに渡されたら暗号化する必要があります。これは、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 
4

3 に答える 3

8

これは非常に速い例です。非対称キーで動作します。これが役立つことを願っています。

まず、次のコードを使用して非対称キーを作成します。


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))
于 2014-02-06T20:02:34.103 に答える
5

いつものように、古き良き Pinal Dave がこれに関する有益な情報を提供しています。少し複雑ですが、クライアント側のコードではなく SQL Server で実行する必要がある場合は、それでうまくいくはずです。ただし、CPU を集中的に使用するプロセスであるため、パフォーマンスの問題に注意する必要があります。

于 2013-02-26T16:16:14.943 に答える
0

塩漬けのsha1またはmd5をお勧めします

CONVERT(VARCHAR(32), HashBytes('MD5', 'email@dot.com'), 2)

ハッシュは技術的には暗号化ではありませんが。

于 2013-02-26T16:11:16.567 に答える