Skip to content

Fork of ChrisMcKee / cryptsharp - to make SQL CLR compatible assembly for bcrypt

License

Notifications You must be signed in to change notification settings

RobMarshall109/cryptsharpSQL

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CryptSharpSQL


This fork of ChrisMcKee/crypsharp is to create a SQL CLR compatible assembly.

It has been stripped down, and only the Blowfishcipher.Bcrypt is in use. It has been tested with SQL Server 2008.

To create assembly in SQL Server run the following, replacing %PATH% with your path to CryptSharpSQL.dll:


CREATE ASSEMBLY CryptSharpSQL from '%PATH%\CryptSharpSQL.dll' WITH PERMISSION_SET = SAFE
GO

To add the Crypt Function to SQL:


CREATE FUNCTION Crypt 
	(
	@password varbinary(70),
	@salt nvarchar(40)
	)
	RETURNS nvarchar(100)
AS
EXTERNAL NAME CryptSharpSQL.[CryptSharpSQL.CrypterSQL].Crypt
GO

To add the GenerateSalt Function to SQL:


CREATE FUNCTION GenerateSalt 
	(
	@rounds int
	)
	RETURNS nvarchar(40)
AS
EXTERNAL NAME CryptSharpSQL.[CryptSharpSQL.CrypterSQL].GenerateSalt
GO

To use in SQL:


/* Create Salt */
DECLARE @salt nvarchar(40)
SET @salt = dbo.GenerateSalt(6)

/* Create Hash */
DECLARE @hash nvarchar(60)
SET @hash = dbo.Crypt(123456, @salt)

/* test */
Select @hash
Select test = dbo.Crypt(123456, @salt)

Be aware when using BCrypt that only the first 72 bytes of a password are used. This limitation is not specific to this implementation. If you are likely to pass byte arrays over 72 bytes in length, call PadKeyThenCrypt to have the extra bytes removed.


CryptSharp uses the ISC license.

About

Fork of ChrisMcKee / cryptsharp - to make SQL CLR compatible assembly for bcrypt

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C# 100.0%