მე ვატარებდი გარკვეულ გამოკვლევას პაროლის სიძლიერის შემმოწმებლის კარგი მაგალითის მოძიებაში JavaScript და რეგულარული გამონათქვამები (რეგექსი). ჩემს ნამუშევარში, ჩვენ ვაგზავნით შეტყობინებას, რომ გადავამოწმოთ პაროლის ძალა და ეს საკმაოდ მოუხერხებელია ჩვენი მომხმარებლებისთვის.
რა არის რეგექსი?
რეგულარული გამოხატვა არის სიმბოლოების თანმიმდევრობა, რომლებიც განსაზღვრავს ძიების ნიმუშს. ჩვეულებრივ, ასეთ შაბლონებს იყენებენ სტრიქონის ძიების ალგორითმებით მოვძებნოთ or იპოვე და ჩაანაცვლე ოპერაციები სტრიქონებზე ან შეყვანის ვალიდაციისთვის.
ეს სტატია ნამდვილად არ არის იმისათვის, რომ გასწავლოთ რეგულარული გამოთქმები. უბრალოდ იცოდეთ, რომ რეგულარული გამოხატვის გამოყენების შესაძლებლობა აბსოლუტურად გაამარტივებს თქვენს განვითარებას ტექსტში ნიმუშების ძებნისას. ასევე მნიშვნელოვანია აღინიშნოს, რომ განვითარების ენების უმეტესობამ ოპტიმიზირებულია გამოხატვის რეგულარული გამოყენება… ასე რომ, ვიდრე სტრიქონების ეტაპობრივად გაანალიზება და ძებნა ხდება, Regex, როგორც წესი, ბევრად უფრო სწრაფია, როგორც სერვერული, ასევე კლიენტის მხრიდან.
სანამ ინტერნეტს ვიპოვიდი, საკმაოდ ცოტა ვეძებე ინტერნეტში მაგალითად რამდენიმე შესანიშნავი რეგულარული გამოხატვისა, რომლებიც ეძებენ სიგრძის, სიმბოლოებისა და სიმბოლოების კომბინაციას. თუმცა, კოდი ოდნავ გადაჭარბებული იყო ჩემი გემოვნებისთვის და მორგებული იყო .NET– ზე. ასე რომ, მე გავამარტივე კოდი და ჩავდე JavaScript- ში. ეს საშუალებას აძლევს მას, შეამოწმოს პაროლის სიძლიერე რეალურ დროში კლიენტის ბრაუზერზე, სანამ გაგზავნით მას უკან back და გარკვეულ უკუკავშირს მისცემს მომხმარებელს პაროლის სიძლიერის შესახებ.
აკრიფეთ პაროლი
კლავიატურის ყოველი დარტყმისას, პაროლი ტესტირდება რეგულარული გამოხატვის საწინააღმდეგოდ და შემდეგ მომხმარებელს მიეწოდება უკუკავშირი მის ქვეშ.
აკრიფეთ პაროლი
აქ არის კოდი
ის რეგულარული გამონათქვამები გააკეთე ფანტასტიკური სამუშაო, კოდის სიგრძის შემცირება:
- მეტი პერსონაჟი - თუ სიგრძე 8 სიმბოლოზე ნაკლებია.
- სუსტი - თუ სიგრძე 10 სიმბოლოზე ნაკლებია და არ შეიცავს სიმბოლოების, შაბლონების, ტექსტის კომბინაციას.
- საშუალო - თუ სიგრძე 10 ან მეტი სიმბოლოა და მასში გაერთიანებულია სიმბოლოები, კაპები, ტექსტი.
- ძლიერი - თუ სიგრძე 14 ან მეტი სიმბოლოა და მასში გაერთიანებულია სიმბოლოები, კაპები, ტექსტი.
<script language="javascript">
function passwordChanged() {
var strength = document.getElementById('strength');
var strongRegex = new RegExp("^(?=.{14,})(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*\\W).*$", "g");
var mediumRegex = new RegExp("^(?=.{10,})(((?=.*[A-Z])(?=.*[a-z]))|((?=.*[A-Z])(?=.*[0-9]))|((?=.*[a-z])(?=.*[0-9]))).*$", "g");
var enoughRegex = new RegExp("(?=.{8,}).*", "g");
var pwd = document.getElementById("password");
if (pwd.value.length == 0) {
strength.innerHTML = 'Type Password';
} else if (false == enoughRegex.test(pwd.value)) {
strength.innerHTML = 'More Characters';
} else if (strongRegex.test(pwd.value)) {
strength.innerHTML = '<span style="color:green">Strong!</span>';
} else if (mediumRegex.test(pwd.value)) {
strength.innerHTML = '<span style="color:orange">Medium!</span>';
} else {
strength.innerHTML = '<span style="color:red">Weak!</span>';
}
}
</script>
<input name="password" id="password" type="text" size="15" maxlength="100" onkeyup="return passwordChanged();" />
<span id="strength">Type Password</span>
თქვენი პაროლის მოთხოვნის გამკვრივება
აუცილებელია, რომ თქვენ უბრალოდ არ დაადასტუროთ პაროლის კონსტრუქცია თქვენს Javascript- ში. ეს საშუალებას მისცემს ნებისმიერს, რომლებსაც ბრაუზერის განვითარების ხელსაწყოები აქვთ, გვერდის ავლით მოახდინონ სკრიპტი და გამოიყენონ ნებისმიერი პაროლი, რომელიც გსურთ. თქვენ ყოველთვის უნდა გამოიყენოთ სერვერის შემოწმება, რომ დაადასტუროთ პაროლის სიძლიერე, სანამ შეინახავთ თქვენს პლატფორმაში.
ვიპოვე კიდევ ერთი პაროლის სიძლიერის შემმოწმებელი. მათი ალგორითმი სიტყვების ლექსიკონზეა დაფუძნებული. სცადეთ ერთი microsoft.com–ზე – http://www.microsoft.com/protect/yourself/password/checker.mspx და ერთი itsimpl.com–ზე – http://www.itsimpl.com
ᲒᲛᲐᲓᲚᲝᲑᲗ! ᲒᲛᲐᲓᲚᲝᲑᲗ! ᲒᲛᲐᲓᲚᲝᲑᲗ! 2 კვირაა ვგიჟდები სხვა ვებსაიტებიდან შემოსული პაროლის სიმტკიცის კოდით და თმას ვიწევ. შენი მოკლეა, მუშაობს ისევე, როგორც მე მინდა და რაც ყველაზე კარგია, მარტივია Javascript-ის დამწყებთათვის შეცვლა! მე მსურდა გამომეტანა ძალაუფლების ვერდიქტი და არ მიმეღო საშუალება, რომ ფორმა გამოქვეყნდეს მომხმარებლის პაროლის რეალურად განახლებაზე, თუ ის არ დააკმაყოფილებდა სიძლიერის ტესტს. სხვა ადამიანების კოდი ძალიან რთული იყო ან არ მუშაობდა სწორად ან სხვა რამ. Მიყვარხარ! XXXX
Არაფრის! Არაფრის! Არაფრის!
Მეც მიყვარხარ!
მადლობა ღმერთს იმ ადამიანებისთვის, რომლებსაც რეალურად შეუძლიათ კოდის სწორად დაწერა.
იგივე გამოცდილება ჰქონდა რაც ჯენისს.
ეს მუშაობს პირდაპირ ყუთში, რაც შესანიშნავია ჩემნაირი ადამიანებისთვის, რომლებსაც არ შეუძლიათ Javascript-ის კოდირება!
გმადლობთ, რომ დაწერეთ კოდის ნაწილი, რომელიც ზუსტად ასრულებს იმას, რაც წერია ქილაზე!
გამარჯობა, უპირველეს ყოვლისა, დიდი მადლობა თქვენი ძალისხმევისთვის, ვეცადე გამომეყენებინა Asp.net-ით, მაგრამ არ გამომივიდა, ვიყენებ
ტეგის ნაცვლად და არ იმუშავა, რაიმე შემოთავაზება?!
Nisreen-ს: მონიშნულ ველში კოდი არ მუშაობს cut'n'paste-ით. ერთი ციტატა არეულია. საჩვენებელი ბმულის კოდი კარგია.
ჰეი, მომწონს შენი სცენარი! ჰოლანდიურად ვთარგმნე და ჩემს ფორუმზე დავდე აქ!
ყოჩაღ! ზუსტად როგორ უნდა მოხდეს კლიენტზე
ძალიან კარგი სამუშაო….
მადლობა დუგლას, მე მას ჩემი ამჟამინდელი სამუშაოსთვის ვიყენებ.
"P@s$w0rD" აჩვენებს ძლიერად, თუმცა ის საკმაოდ სწრაფად გატეხილი იქნებოდა ლექსიკონის შეტევით...
ასეთი ფუნქციის პროფესიონალურ გადაწყვეტაზე გამოსაყენებლად, ვფიქრობ, მნიშვნელოვანია ამ ალგორითმის გაერთიანება ლექსიკონის შემოწმებასთან.
მშვენივრად მუშაობს XULRunner-ში მცირე ცვლილებით. მადლობა!
გმადლობთ ამ პატარა კოდისთვის, ახლა შემიძლია გამოვიყენო ჩემი პაროლის სიძლიერის შესამოწმებლად, როდესაც ჩემი ვიზიტორები .შეიყვანს მათ პაროლს,
კოდირების შესანიშნავი ნაწილი
სცენარი იყო სუპერ. მე ვიყენებდი ჩვენს ამჟამინდელ პროექტში
გმადლობთ გაზიარების!
ასე მარტივი და ფანტასტიკური გამოთქმა. მე, როგორც ტესტერმა, ამ გამონათქვამიდან გამოვიტანე ჩემი TC.
Გმადლობთ გაზიარებისთვის. თქვენ გაქვთ რამდენიმე გატეხილი ბმული ამ გვერდზე. FYI.
შეიძლება ვინმემ მითხრას, რატომ არ მუშაობდა ჩემი..
დავაკოპირე ყველა კოდი და ჩასვით notepad++, მაგრამ საერთოდ არ მუშაობს?
გთხოვ დამეხმარე..
Ფანტასტიკური!!!!! Გმადლობთ.
დიდი სამუშაო ბიჭი! მარტივი და ეფექტური. დიდი მადლობა გაზიარებისთვის!
დიდი მადლობა
კარგი, thx. მაგრამ… რა არის მაგალითი STRONG pw? 'ვერ ვიპოვე!-{}
ამ ტიპის „ძლიერების შემმოწმებელი“ ადამიანებს ძალიან სახიფათო გზაზე მიჰყავს. იგი აფასებს სიმბოლოების მრავალფეროვნებას საიდუმლო ფრაზის სიგრძეზე, რაც იწვევს მას უფრო მოკლე, უფრო მრავალფეროვანი პაროლების შეფასებას, როგორც უფრო ძლიერს, ვიდრე უფრო გრძელი, ნაკლებად მრავალფეროვანი პაროლები. ეს არის შეცდომა, რომელიც თქვენს მომხმარებლებს პრობლემების წინაშე დააყენებს, თუ ისინი ოდესმე შეხვდებიან სერიოზულ ჰაკერულ საფრთხეს.
მე არ ვეთანხმები, ჟორდანია! მაგალითი უბრალოდ იყო გადმოცემული, როგორც სცენარის მაგალითი. ჩემი რეკომენდაცია ხალხს არის გამოიყენონ პაროლის მართვის ინსტრუმენტი, რათა შექმნან დამოუკიდებელი საიდუმლო ფრაზები ნებისმიერი საიტისთვის, რომელიც უნიკალურია მისთვის. მადლობა!
მადლობა მშვენივრად მუშაობს.
გმადლობთ, კარგად მუშაობს
ძალიან მადლობელი ვარ, რომ ბევრჯერ ვეძებე, მაგრამ ბოლოს მივიღე შენი პოსტი და ძალიან გაოგნებული ვარ. ᲒᲛᲐᲓᲚᲝᲑᲗ
Მადლობთ მეგობარო. ახლახან განლაგებულია ჩემს ვებსაიტზე და ის ძალიან კარგად მუშაობს.
მიყვარს ამის მოსმენა! მოგესალმებათ!
ვაფასებ თქვენ გაზიარებას! ვცდილობდი გამეძლიერებინა პაროლის ძალა ჩვენს ვებსაიტზე და ეს მუშაობდა ისე, როგორც მე მინდოდა. Დიდი მადლობა!
გმადლობთ, იმედი მაქვს, რომ თქვენ შეძლებთ მისი მორგება საჭიროებისამებრ.
თქვენ ცოცხალი შემნახველი ხართ! მე ვაანალიზებდი სტრიქონებს მარცხნივ მარჯვნივ და ცენტრში და ვფიქრობდი, რომ უკეთესი გზა იყო და ვიპოვე თქვენი კოდის ნაწილი Regex-ის გამოყენებით. მე შევძელი ჩემი საიტისთვის მისი დახატვა... თქვენ წარმოდგენაც არ გაქვთ რამდენად დაეხმარა ამან. დიდი მადლობა დუგლას!!
შესანიშნავია მოსმენა!