set nocount on Declare @RC int declare @object int declare @password_hash char(40) declare @method varchar(255) declare @src varchar(255) declare @desc varchar(255) declare @password char(40) set @password='supersecret' -- create hash for password exec @rc = sp_oacreate 'capicom.hasheddata', @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', 0 -- sha 1 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 = 'hash ("' + rtrim(@password) + '")' exec @rc=sp_oamethod @object, @method 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, 'value', @password_hash output 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 'Hashed Password is: ' + @password_hash -- Destroy object exec @rc = sp_OADestroy @object if @rc 0 begin exec sp_OAGetErrorInfo @object return end