Delphi Can
Şifre Algoritması Oluşturma - Baskı Önizleme

+- Delphi Can (https://www.delphican.com)
+-- Forum: Delphi (https://www.delphican.com/forumdisplay.php?fid=3)
+--- Forum: Genel Programlama (https://www.delphican.com/forumdisplay.php?fid=6)
+--- Konu Başlığı: Şifre Algoritması Oluşturma (/showthread.php?tid=5088)



Şifre Algoritması Oluşturma - ALUCARD - 13-07-2020

Arkadaşlar Merhaba;
Ben bilgi güvenliği kapsamında şifre algoritması oluşturmak istiyorum. 
Örnek olarak en az 8 karakter olacak, içinde en az 1 büyük harf ve 1 küçük harf, 1 noktalama işareti olacak şeklinde.

Karakter sayısını alıyorum ama string bir ifadenin içinde büyük harf varmı diye nasıl kontrol edeceğimi bilemiyoum.

bunun bir fonksiyonu varmı dır. yoksa karakterleri diziye atıp büyük mü diye mi kontrol etmeliyim bulamadım.

Yardımcı olabilecek arkadaşlara şimdiden çok teşekkür ederim.


Cvp: Şifre Algoritması Oluşturma - Halil Han BADEM - 13-07-2020

(13-07-2020, Saat: 15:21)ALUCARD Adlı Kullanıcıdan Alıntı: Arkadaşlar Merhaba;
Ben bilgi güvenliği kapsamında şifre algoritması oluşturmak istiyorum. 
Örnek olarak en az 8 karakter olacak, içinde en az 1 büyük harf ve 1 küçük harf, 1 noktalama işareti olacak şeklinde.

Karakter sayısını alıyorum ama string bir ifadenin içinde büyük harf varmı diye nasıl kontrol edeceğimi bilemiyoum.

bunun bir fonksiyonu varmı dır. yoksa karakterleri diziye atıp büyük mü diye mi kontrol etmeliyim bulamadım.

Yardımcı olabilecek arkadaşlara şimdiden çok teşekkür ederim.

Merhaba, 
bu iş için regex kullanılır. 
Başlık biraz yeni bir şifreleme algoritması oluşturma gibi yansımış ama sorun yok. 

Kod:
^(?=.*[A-Z].*[A-Z])(?=.*[!@#$&*])(?=.*[0-9].*[0-9])(?=.*[a-z].*[a-z].*[a-z]).{8}$

Bu işini çözecektir. Kendine göre düzenleme yapabilirsin. 
Ayrıntılı cevap:https://stackoverflow.com/a/5142164

Delphi ile regex kullanma: https://stackoverflow.com/a/27535827

Mobildeyim diye teferruatlı yazamadım Smile


Cvp: Şifre Algoritması Oluşturma - mrmarman - 13-07-2020

(13-07-2020, Saat: 15:21)ALUCARD Adlı Kullanıcıdan Alıntı: Karakter sayısını alıyorum ama string bir ifadenin içinde büyük harf varmı diye nasıl kontrol edeceğimi bilemiyoum.

* RegEX zor gelirse ( kavraması biraz zaman alır ) strring fonksiyonlar biçilmiş kaftan.

Not: Characters kısmına dilediğin uygun karakterleri ekleyebilirsiniz.Numaraları ekstra eklemişim. soruyu okumadan kod yazarsan böyle oluyor. O kısmı bonus kabul et, dilersen çıkarç  Wink


function ProperPassword( aString : String ): boolean;
Const
  minChar = 8;
  UpperChars = [ 'A'..'Z' ];
  LowerChars = [ 'a'..'z' ];
  Numbers    = [ '0'..'9' ];
  Characters = [ '.', '_', '-', '|' ];
var
  i : Integer;
  upperOk, lowerOk, charOk, numberOk: Boolean;
begin
  Result := False; // default value
  if Length(aString) < minChar then Exit; // quit

  upperOk   := false;
  lowerOk   := false;
  charOk    := false;
  numberOk  := false;
  for i := 1 to Length(aString) do
  begin
    if aString[i] in UpperChars then upperOk  := True;
    if aString[i] in LowerChars then lowerOk  := True;
    if aString[i] in Characters then charOk   := True;
    if aString[i] in Numbers    then numberOk := True;
  end;
  Result := upperOk AND lowerOk and charOk and numberOk;
end;

Kullanımı :

procedure TForm1.Button1Click(Sender: TObject);
begin
  if ProperPassword( '12345.Muharrem' )
    then ShowMessage('OK')
    else ShowMessage('not proper');

end;