LOGO

LOGO
LOGO
ads header

Breaking News

MS SQL VERİTABANINDA STRING ŞİFRELEME(HASHBYTES)

Ms SQL veritabanında string şifreleme için  HASHBYTES komutu kullanabiliriz.

HASHBYTES ( '<algorithm>', { @input | 'input' } ) <algorithm>::= MD2 | MD4 | MD5 | SHA | SHA1 | SHA2_256 | SHA2_512

Komutta kullanabilecğeimiz şifreleme algoritmaları yukardaki gibidir.
En çok kullanılan şifrelem yöntemi md5 ve SHA2_256 VE SHA2_512 dir.

 SQL Server 2016 (13.x) ile başlayarak, SHA2_256 ve SHA2_512 dışındaki tüm algoritmalar kullanımdan kaldırılmıştır.

En basit kullanımı 

DECLARE @pasword nvarchar(32); 
SET @pasword=N'vedat';
SET @pasword_MD5=HASHBYTES('MD5', @pasword);
SELECT  @pasword_MD5;


Eğer veritabanında bu şifreyi kullanacaksak ise;

SELECT * FROM test1 WHERE pasword_SHA2_512=HASHBYTES('SHA2_512','1245');

Sha2_512 ye göre şifrelenmiş '12345' ifadesi kayıtlı mı diye bulmak için


Aşağıdaki kodla table oluşturup  deneme yapabilirsiniz.

USE [DENEME]
GO

/****** Object:  Table [dbo].[Test1]    Script Date: 28.08.2019 17:37:30 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [dbo].[Test1](
[pasword] [nvarchar](100) NULL,
[pasword_SHA2_256] [nvarchar](100) NULL,
[pasword_SHA2_512] [nvarchar](100) NULL,
[pasword_MD5] [nvarchar](100) NULL
) ON [PRIMARY]


GO





DECLARE @pasword nvarchar(32);  
DECLARE @pasword_MD5 nvarchar(32);     --8 byte uzunluğunda
DECLARE @pasword_SHA2_256 nvarchar(32); --32 BYTE UZUNLUĞUNDA
DECLARE @pasword_SHA2_512 nvarchar(32); --16 BYTE UZUNLUĞUNDA

SET @pasword=N'vedat';
SET @pasword_MD5=HASHBYTES('MD5', @pasword);
SELECT @pasword_MD5;
SELECT LEN(@pasword_MD5) ;

SET @pasword=N'vedat';
SET @pasword_SHA2_256=HASHBYTES('SHA2_256', @pasword);
SELECT @pasword_SHA2_256;
SELECT LEN(@pasword_SHA2_256);        

SET @pasword=N'vedat';
SET @pasword_SHA2_512=HASHBYTES('SHA2_512', @pasword);
SELECT  @pasword_SHA2_512;
SELECT LEN(@pasword_SHA2_512);  

INSERT  into dbo.Test1 (pasword,pasword_MD5,pasword_SHA2_256,pasword_SHA2_512) VALUES (@pasword,@pasword_MD5,@pasword_SHA2_256,@pasword_SHA2_512);  
SELECT * FROM TEST1


SELECT * FROM test1 WHERE pasword_SHA2_512=HASHBYTES('SHA2_512',@pasword);


Hiç yorum yok