I have user table in SQL Server 2008 r2. Nothing there is encrypted yet but I would like to at the least encrypt the passwords until the app is ready that will handle this b
We can Create some simple sql function to encrypt and decrypt the Password column in your web page:
Code:Encryption
`CREATE FUNCTION [dbo].[ENCRYPT]
(
@DB_ROLE_PASSWORD VARCHAR(MAX)
)
RETURNS VARCHAR(MAX)
AS
BEGIN
DECLARE
@STR_LEN NUMERIC(10),
@ENCRYPTED_PASSWORD VARCHAR(100),
@TRIAL_CHARACTER VARCHAR(1),
@TRIAL_NUMBER NUMERIC(4)
SET @ENCRYPTED_PASSWORD = NULL
SET @STR_LEN =LEN(@DB_ROLE_PASSWORD)
DECLARE
@I INT
SET @I = 1
DECLARE
@LOOP$BOUND INT
SET @LOOP$BOUND = @STR_LEN
WHILE @I <= @LOOP$BOUND
BEGIN
/* * SSMA WARNING MESSAGES: * O2SS0273: ORACLE SUBSTR FUNCTION AND SQL SERVER SUBSTRING FUNCTION MAY GIVE DIFFERENT RESULTS. */
SET @TRIAL_CHARACTER = SUBSTRING(@DB_ROLE_PASSWORD, @I, 1)
SET @TRIAL_NUMBER = ASCII(@TRIAL_CHARACTER)
IF (@TRIAL_NUMBER % 2) = 0
SET @TRIAL_NUMBER = @TRIAL_NUMBER - 6
ELSE
SET @TRIAL_NUMBER = @TRIAL_NUMBER - 8
SET @TRIAL_CHARACTER = CHAR(CAST(@TRIAL_NUMBER + @I AS INT))
SET @ENCRYPTED_PASSWORD = ISNULL(@ENCRYPTED_PASSWORD, '') + ISNULL(@TRIAL_CHARACTER, '')
SET @I = @I + 1
END
RETURN @ENCRYPTED_PASSWORD
END`
Code:Decryption
`CREATE FUNCTION [dbo].[DECRYPT]
(
@DB_ROLE_PASSWORD VARCHAR(MAX)
)
RETURNS VARCHAR(MAX)
AS
BEGIN
DECLARE
@STR_LEN NUMERIC(10),
@DECRYPTED_PASSWORD VARCHAR(100),
@TRIAL_CHARACTER VARCHAR(1),
@TRIAL_NUMBER NUMERIC(4),
@CHECK_CHARACTER VARCHAR(1),
@V_DB_ROLE_PASSWORD VARCHAR(100)
SET @V_DB_ROLE_PASSWORD = @DB_ROLE_PASSWORD
SET @DECRYPTED_PASSWORD = NULL
SET @STR_LEN = LEN(@V_DB_ROLE_PASSWORD)
DECLARE
@I INT
SET @I = 1
DECLARE
@LOOP$BOUND INT
SET @LOOP$BOUND = @STR_LEN
WHILE @I <= @LOOP$BOUND
BEGIN
/*
* SSMA WARNING MESSAGES:
* O2SS0273: ORACLE SUBSTR FUNCTION AND SQL SERVER SUBSTRING FUNCTION MAY GIVE DIFFERENT RESULTS.
*/
SET @TRIAL_CHARACTER = SUBSTRING(@V_DB_ROLE_PASSWORD, @I, 1)
SET @TRIAL_NUMBER = ASCII(@TRIAL_CHARACTER) - @I
IF (@TRIAL_NUMBER % 2) = 0
SET @TRIAL_NUMBER = @TRIAL_NUMBER + 6
/*-IE EVEN*/
ELSE
SET @TRIAL_NUMBER = @TRIAL_NUMBER + 8
/*-IE ODD*/
SET @DECRYPTED_PASSWORD = ISNULL(@DECRYPTED_PASSWORD,'') + ISNULL(CHAR(CAST(@TRIAL_NUMBER AS INT)), '')
SET @I = @I + 1
END
RETURN @DECRYPTED_PASSWORD
END`