:haha:hö:haha:Hashı Oluşturan Fonksiyonumuz.
Kod:CREATE FUNCTION CreateHash(@Data int) /* Author : AKUMA */ RETURNS varbinary(255) BEGIN DECLARE @Hash varbinary (255) SET @Hash = pwdencrypt(@Data) RETURN @Hash END
Hash Kontrolü Yapan Fonksiyonumuz...
Kod:CREATE FUNCTION [dbo].[CheckHash](@Data int,@Hash varbinary(255)) /* Author : AKUMA */ RETURNS int BEGIN DECLARE @CheckStatus int SET @CheckStatus = pwdcompare(@Data,@Hash) RETURN @CheckStatus END
İLK 2 KODDA HATA YAŞAYAN ARKADAŞLARIM BU İLK 2 KOD YERİNE BUNU KULLANIN
:haha:hö:haha:
Kod:CREATE FUNCTION CreateHash(@Data int) /* Author : AKUMA */ RETURNS varbinary(255) BEGIN DECLARE @Hash varbinary (255) SET @Hash = pwdencrypt(@Data) RETURN @Hash END
Kod:CREATE FUNCTION CheckHash(@Data int,@Hash varbinary(255)) /* Author : AKUMA */ RETURNS int BEGIN DECLARE @CheckStatus int SET @CheckStatus = pwdcompare(@Data,@Hash) RETURN @CheckStatus END
İLK 2 KODDA HATA YAŞAYAN ARKADAŞLARIM BU İLK 2 KOD YERİNE BUNU KULLANIN
:haha:hö:haha:
CREATE FUNCTION CreateHash(@Data varchar(255))
/*
Author : AKUMA
*/
RETURNS varbinary(255)
BEGIN
DECLARE @Hash varbinary (255)
SET @Hash = pwdencrypt(@Data)
RETURN @Hash
END
CREATE FUNCTION CheckHash(@Data varchar(255),@Hash varbinary(255))
/*
Author : AKUMA
*/
RETURNS int
BEGIN
DECLARE @CheckStatus int
SET @CheckStatus = pwdcompare(@Data,@Hash)
RETURN @CheckStatus
END
Ya Şimdi Kızacam Haklıyım Çünkü
@Data'nın Type Orada Text Nedemek Bu Yazıda Olabilir Rakamda(TB_USER da Şifreler Sadece Rakamdanmı Oluşuyorda INT Veriyorsun.) Oradaki Text, varchar(255) veya char(255) Olabilir yada ntext Farklı Birşey Olamaz.
@Data nın Type nı int Olamaz int Olması Demek DB de Şifresinde Harf Karakter Kullanıan Hesapları Bozarsın ve Bu Sisteme Bağlı Benim Yazdığım Hiç Bir Procedure İşlemez.
Şunu Deneyin Sadece
@Data Type Hata Alıyorsanız.
Kod:CREATE FUNCTION CreateHash(@Data varchar(255)) /* Author : AKUMA */ RETURNS varbinary(255) BEGIN DECLARE @Hash varbinary (255) SET @Hash = pwdencrypt(@Data) RETURN @Hash END
Hash Kontrolü Yapan Fonksiyonumuz...
Kod:CREATE FUNCTION CheckHash(@Data varchar(255),@Hash varbinary(255)) /* Author : AKUMA */ RETURNS int BEGIN DECLARE @CheckStatus int SET @CheckStatus = pwdcompare(@Data,@Hash) RETURN @CheckStatus END
Hatayı Pas Geçtiğiniz O Proc Çalışıyor Anlamına Gelmez, Yapının Ne Olduğunu Bilmiyorsanız Başkasının Koduna Müdahale Etmeyin Hele Hele Programlamayı Bilmiyorsanız Bana Kızacaksınız Ama Banada Hak Verin O Adamın DB si Bozulduğundan JackalAdmini Tanımıyacak Beni Tanıyacak Bu Sorumluluğuda Üzerime Alamam, Zaten SQL Programlamayı Bilen Ne Türlü Bir Hataya Sebebiyet Doğrabileceğini Çok İyi Anlar @Data nın İnt e Dönmesinin.
O SQL'inden Kaynaklı Bir Sorun Kabul Etmiyorsa SQL inde Bir Hata Var Demektirben hem harf hem sayıdan oluşan şifre deneyipte yaptım sorun cıkmadı onun icin werdim ayrıca warchar text ntext char gibi tipleri kabul etmiyorhö:haha:
DECLARE @Sayi int
SET @Sayi = 'DENEME'
PRINT @Sayi
O SQL'inden Kaynaklı Bir Sorun Kabul Etmiyorsa SQL inde Bir Hata Var Demektir
Ayrıca O Type int Olduğunda Nasıl Text Veri Gönderiyorsun Açıkcası Merak Ettim Bunu Başarabiliyorsan int veriyi Text Atamayı Microsoftu Al Aşşağı Etmişsin Demektir ki İmkansız int veriye text Veri Atanamaz En Basitinden Dene istersen
Kod:DECLARE @Sayi int SET @Sayi = 'DENEME' PRINT @Sayi
Bu Calışırmı
Neyse Polimik Yaratmayayım Çalışıyor Diyorsan Öyle Çalışıyordur.![]()
tb usere sag tıkla yeni column ekle strpasswd die varchar 12 olcak
Turkeyko db'si son çalındıktan sonra bu sisteme geçtim ben de.
gizli cevap kısmını da şifrelemenizi tavsiye ederim.
Ve işleminizi yeterince hızlanacak bir kod vereyim :
DECLARE @strAccountID varchar(50),@strPasswd varchar(50),@strPasswdBackup varbinary(255)
DECLARE TB_USER CURSOR FOR
SELECT strAccountID,strPasswd,strPasswdBackup FROM TB_USER
OPEN TB_USER
FETCH NEXT FROM TB_USER INTO @strAccountID,@strPasswd,@strPasswdBackup
WHILE (@@FETCH_STATUS = 0)
BEGIN
UPDATE TB_USER SET strPasswdBackup = dbo.CreateHash(@strPasswd) WHERE strAccountID = @strAccountID
FETCH NEXT FROM TB_USER INTO @strAccountID,@strPasswd,@strPasswdBackup
END
CLOSE TB_USER
DEALLOCATE TB_USER
yerine
UPDATE TB_USER SET strPasswdBackup = dbo.CreateHash(strPasswd)
kullanırsanız işleminiz 30 - 60 dk arasından (kişi sayısına göre)
5 - 10 sn.'ye indirgenir (kişi sayısına göre)