Sie sind auf Seite 1von 1

CREATE FUNCTION [dbo].

[Decrypt2Number] (@encryptString VARCHAR(7))


RETURNS INT
AS
BEGIN
DECLARE @AlphabetCode VARCHAR(26)
DECLARE @AlphabetLength INT = 26
DECLARE @Idx INT = 0
DECLARE @Letter CHAR(1)
DECLARE @LetterValue INT
DECLARE @ReversedEncryptString VARCHAR(7)
DECLARE @DecryptedNumber INT = 0

SET @ReversedEncryptString = REVERSE(@encryptString)


SET @AlphabetCode = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'

WHILE @Idx < LEN(@encryptString)


BEGIN
SET @Letter = SUBSTRING(@ReversedEncryptString, @Idx + 1, 1)
SET @LetterValue = (CHARINDEX(@Letter, @AlphabetCode) - 1) *
POWER(@AlphabetLength, @Idx)
SET @DecryptedNumber = @DecryptedNumber + @LetterValue
SET @Idx = @Idx + 1
END

RETURN @DecryptedNumber
END

GO
/****** Object: UserDefinedFunction [dbo].[Encrypt2String] Script Date: 03-Nov-
17 4:26:08 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION [dbo].[Encrypt2String] (@Number2Encrypt INT)
RETURNS VARCHAR(30)
AS
BEGIN
DECLARE @AlphabetCode VARCHAR(26)
DECLARE @AlphabetLength INT = 26
DECLARE @EncryptedString VARCHAR(30) = ''
DECLARE @CurrDigitInNumber CHAR(1)

SET @AlphabetCode = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'


SET @EncryptedString = SUBSTRING(@AlphabetCode, (@Number2Encrypt %
@AlphabetLength) + 1, 1)

WHILE @Number2Encrypt > 0


BEGIN
SET @CurrDigitInNumber = SUBSTRING(@AlphabetCode, ((@Number2Encrypt /
@AlphabetLength) % @AlphabetLength) + 1, 1)
SET @Number2Encrypt = @Number2Encrypt / @AlphabetLength

IF @Number2Encrypt != 0
SET @EncryptedString = @CurrDigitInNumber + @EncryptedString
END

RETURN @EncryptedString
END

Das könnte Ihnen auch gefallen