Declare @rc int Declare @returnval int DECLARE @object int DECLARE @Encrypted_CreditCard varchar(4000) DECLARE @Decrypted_CreditCard varchar(4000) Declare @Method_call varchar(4000) Declare @Secret_code varchar(1000) declare @src varchar(255) declare @desc varchar(255) -- Password for Encryption set @secret_code = 'super secret code' set @Decrypted_CreditCard = '1234 5678 9012 3456' -- Encrypt EXEC @rc = sp_OACreate 'CAPICOM.EncryptedData', @object OUT if @rc 0 begin exec sp_oageterrorinfo @object, @src out, @desc out select hr=convert(varbinary(4),@rc), source=@src, description=@desc return end EXEC @rc = sp_OASetProperty @Object, 'Algorithm.Name', 3 -- 3DES if @rc 0 begin exec sp_oageterrorinfo @object, @src out, @desc out select hr=convert(varbinary(4),@rc), source=@src, description=@desc return end EXEC @rc = sp_OASetProperty @Object, 'Algorithm.KeyLength', 3 -- 128 bit key if @rc 0 begin exec sp_oageterrorinfo @object, @src out, @desc out select hr=convert(varbinary(4),@rc), source=@src, description=@desc return end set @method_call = 'SetSecret("' + @Secret_code + '")' EXEC @rc=sp_OAMethod @Object, @method_call if @rc 0 begin exec sp_oageterrorinfo @object, @src out, @desc out select hr=convert(varbinary(4),@rc), source=@src, description=@desc return end EXEC @rc=sp_OASetProperty @Object, 'Content',@Decrypted_CreditCard if @rc 0 begin exec sp_oageterrorinfo @object, @src out, @desc out select hr=convert(varbinary(4),@rc), source=@src, description=@desc return end EXEC @rc=sp_OAMethod @Object, 'Encrypt(0)', @Encrypted_CreditCard out if @rc 0 begin exec sp_oageterrorinfo @object, @src out, @desc out select hr=convert(varbinary(4),@rc), source=@src, description=@desc return end -- Print encrypted text print 'Encrypted Credit Card Info = ' + @Encrypted_CreditCard -- Decrypt EXEC @rc = sp_OACreate 'CAPICOM.EncryptedData', @object OUT if @rc 0 begin exec sp_oageterrorinfo @object, @src out, @desc out select hr=convert(varbinary(4),@rc), source=@src, description=@desc return end set @method_call = 'SetSecret("' + @Secret_code + '")' EXEC @rc=sp_OAMethod @Object, @method_call if @rc 0 begin exec sp_oageterrorinfo @object, @src out, @desc out select hr=convert(varbinary(4),@rc), source=@src, description=@desc return end set @Decrypted_CreditCard = 'garbage' set @method_call = 'Decrypt("' + @Encrypted_CreditCard + '")' EXEC @rc=sp_OAMethod @Object,@method_call if @rc 0 begin exec sp_oageterrorinfo @object, @src out, @desc out select hr=convert(varbinary(4),@rc), source=@src, description=@desc return end EXEC @rc=sp_OAGetProperty @Object, 'Content',@Decrypted_CreditCard out if @rc 0 begin exec sp_oageterrorinfo @object, @src out, @desc out select hr=convert(varbinary(4),@rc), source=@src, description=@desc return end -- Print decrypted text print ' ' print 'Decrypted Create Card Info = ' + @Decrypted_CreditCard -- Destroy object exec @rc = sp_OADestroy @object if @rc 0 begin exec sp_OAGetErrorInfo @object return end