DES Encryption/Decryption Function
    There is a great article on SQLServerCentral on an Extended Stored Procedure http://www.sqlservercentral.com/columnists/mcoles/freeencryption.asp and this XP will undoubtedly perform better than my Function. However I had a need to encrypt a column in a shared hosted environment where I was not allowed to install XPs. Just copy script and paste into Query Analyzer
   SET QUOTED_IDENTIFIER ON 
GO
SET ANSI_NULLS ON 
GO
 
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[fn_PwdCrypt]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[fn_PwdCrypt]
GO
 
CREATE FUNCTION dbo.fn_PwdCrypt(@ptSource varchar(255), @ptPassword varchar(255))
 
RETURNS varbinary(64)
BEGIN
 
            DECLARE @tdest                                 varchar(255),
                                    @lteller                         int,
                                    @lPasswTeller   int,
                                    @cnt                            int,
                                    @len                             int,
                                    @tFinal                         varbinary(64)
 
            SELECT @tFinal = Convert(varbinary(64),'')
            SELECT @len = Len(@ptSource)
            SELECT @lteller = 1
            SELECT @tdest = @ptSource
            SELECT @lPasswTeller = 0
 
            WHILE @lteller <= @len
            BEGIN
            SELECT @lPasswTeller = @lPasswTeller - 1
            If @lPasswTeller < 1 
                                    SELECT @lPasswTeller = Len(@ptPassword)
 
                        SELECT @tfinal = @tfinal + Convert(varbinary(64),Stuff(Substring(@tdest, @lteller, 1),1,Len( Char(Ascii(Substring(@ptSource, @lteller, 1)) ^ Ascii(Substring(@ptPassword, @lPasswTeller, 1)))), Char(Ascii(Substring(@ptSource, @lteller, 1)) ^ Ascii(Substring(@ptPassword, @lPasswTeller, 1))) ) )
                        SELECT @lteller = @lteller + 1
            END
            RETURN @tfinal
 
 
 
END
 
GO
SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON 
GO
 
SET QUOTED_IDENTIFIER ON 
GO
SET ANSI_NULLS ON 
GO
 
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[fn_PwdDeCrypt]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[fn_PwdDeCrypt]
GO
 
CREATE FUNCTION dbo.fn_PwdDeCrypt(@ptSource varchar(255), @ptPassword varchar(255))
 
RETURNS varchar(255)
BEGIN
 
            DECLARE @tdest                                 varchar(255),
                                    @lteller                         int,
                                    @lPasswTeller   int,
                                    @cnt                            int,
                                    @len                            int,
                                    @tFinal                         varchar(255)
 
            SELECT @tFinal = ''
            SELECT @len = Len(@ptSource)
            SELECT @lteller = 1
            SELECT @tdest = @ptSource
            SELECT @lPasswTeller = 0
 
            WHILE @lteller <= @len
            BEGIN
            SELECT @lPasswTeller = @lPasswTeller - 1
            If @lPasswTeller < 1 
                                    SELECT @lPasswTeller = Len(@ptPassword)
 
                        SELECT @tfinal = @tfinal + Left(Stuff(substring(@tdest, @lteller, 1),1,Len( Char(Ascii(substring(@ptSource, @lteller, 1)) ^ Ascii(Substring(@ptPassword, @lPasswTeller, 1)))), Char(Ascii(Substring(@ptSource, @lteller, 1)) ^ Ascii(Substring(@ptPassword, @lPasswTeller, 1))) ), 1)
                        SELECT @lteller = @lteller+1
            END
            RETURN @tfinal
 
END
 
GO
SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON 
GO
 
--Test it here
create table #temp
            ( pwd varbinary(64))
 
insert into #temp (pwd)
select dbo.fn_PwdCrypt ('MyPassword','secret')
 
select pwd from #temp
select dbo.fn_PwdDeCrypt (pwd,'secret') from #temp
drop table #temp