![]() |
|
Ş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; 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
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ç 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;
|