아래 github 소스는 어플리케이션과 SQL 어디에서든 암호화 복호화가 가능한 방법입니다.
sql(암호화) -> sql(복호화)
c#(암호화) -> c#(복호화)
sql(암호화) -> c#(복호화)
c#(암호화) -> sql(복호화)
https://github.com/krcs/SQLServerCrypto
-- sql sample
EncryptByPassPhrase 와 DecryptByPassPhrase 를 이용한 암호화 방법
IF OBJECT_ID ('PasswordKey') IS NOT NULL
DROP FUNCTION dbo.PasswordKey
GO
CREATE FUNCTION PasswordKey()
RETURNS varchar(100)
WITH ENCRYPTION
AS
BEGIN
RETURN 'P@ssw0rd'
END
go
SELECT EncryptByPassPhrase(dbo.passwordkey(), 'target message')
GO
-- 결과
-- 0x0100000093B09F6A22BD125C758C41C0B7C1EF5EA5433F5B31FD71E3D3CFF8C073C2ECEB
SELECT CAST(DecryptByPassPhrase(dbo.passwordkey(), 0x01000000068564F4F8218FE14236AD6EA97FD0EA6A9146C91C2F7ABDC69FE7E96AB7CDB8) as varchar(8000))
-- 결과
-- target message