2009-10-30 16 views

Odpowiedz

26

Nie można zmienić znaku maskującego hasła w polu standardowego hasła. Możesz go sfałszować za pomocą pola tekstowego, ale powoduje to słaby model zabezpieczeń, ponieważ nie dostajesz ochrony, którą robisz ze skrzynki z hasłami. Na marginesie, generalnie nie jest dobrym pomysłem zmiana zachowania takich elementów, ponieważ użytkownicy przyzwyczaili się do jednej formy maskowania, a ty wprowadzasz inną - jeśli nie ma na to powodu, " d unikać tego.

+0

Jak mogę udawać z tekstowym, jednak nie używam tej funkcji o hasło, sprawdź pytanie http://stackoverflow.com/questions/31604402/zastąp tekst-z-gwiazdkami-w-html-bez-javascript? Noredirect = 1 # comment51159417_31604402 –

3

Nie - klient użytkownika wybiera własny domyślny styl i istnieją (według mojej wiedzy) brak atrybutów CSS, które można zmienić w celu określenia znaku maskującego.

Oczywiście byłoby to możliwe, gdyby pole hasła było tylko standardowym polem tekstowym i ręcznie zamaskowano dane wejściowe za pomocą obsługi zdarzenia javascript (prawdopodobnie onKeyPress). Możesz nawet zadeklarować pole jako type="password" w kodzie HTML, a następnie zmienić funkcję DOM na JS, aby zmienić jej typ. Byłbym jednak trochę ostrożny, robiąc to; implementacja przeglądarki prawie na pewno jest dość solidna, a obejście ustalonej funkcji bezpieczeństwa do samodzielnego uruchamiania rzadko jest dobrym pomysłem.

+6

Ustanowiona funkcja bezpieczeństwa? Hasła i pola wprowadzania tekstu w HTML są prawie takie same, tylko zmiany interfejsu użytkownika, z maskowaniem występującym w polach hasła. Nie odrzucam twojej odpowiedzi, ale to nie jest jak wymyślanie koła lub tworzenie domowego silnika kryptograficznego, to po prostu łatanie elementu interfejsu użytkownika, aby spełnić twoje upodobania. – Spidey

+1

@Spidey, oprócz maskowania znaków, pola hasła uniemożliwiają również kopiowanie z nich treści, w zależności od przeglądarki i systemu operacyjnego. –

+1

@MicahHenning Dziękuję za wskazanie tego. W każdym razie, nawet jeśli użytkownik spróbowałby skopiować z niestandardowego pola tekstowego, wszystko, co dostałby, to były asterisy lub punkty lub jakikolwiek inny symbol, który zdecydowałby się zamaskować prawdziwe hasło. – Spidey

1

Wygląda na to, że jest to możliwe w przeglądarkach webkit. Zobacz przykłady i dokumentację na stronie http://help.dottoro.com/lcbkewgt.php.

nie ma zastosowania do wprowadzania hasła

<input type="text" style="-webkit-text-security: square;" />

Nie ma dobrego rozwiązania dla innych przeglądarek, kiedy ta odpowiedź została napisana, a nawet w przeglądarkach WebKit, znaki jesteś dozwolone do określenia są bardzo ograniczone.

+4

To nie działa. Testowałem to w 4 różnych przeglądarkach. –

+0

Zaktualizowano. Dziękuję @OleHaugset. – www139

14

Stwórz własną czcionkę i używać @font-face i font-family (i font-size) dla input[type="password"]. To powinno pomóc rozwiązać twój problem. Ale ... musisz stworzyć czcionkę z zastąpioną postacią i gwiazdką. Wszystkie liczby znaków w czcionce mogą reprezentować tę samą postać. Użyj google, aby znaleźć darmowy program do edycji czcionek wektorowych.

Nigdy nie mów "to niemożliwe". Powinieneś znaleźć hakera na swój problem.

Znaki, które należy zastąpić twoim symbolem (dla Chrome, Firefox i MSIE): 26AB, 25E6, 25CF, 25D8, ​​25D9, 2219, 20F0, 2022, 2024, 00B7, 002A.

(18C)

+1

Czy masz przykładową czcionkę do udostępnienia? – camolin3

+0

to powinna być idealna odpowiedź ... Dzięki, człowiek ... rozwiązał mój problem –

+1

@waLLe: Kobieta, nie człowiek ... Ludzie rzadko myślą o zachowaniach abstrakcyjnych i wielopoziomowych. BTW. pytanie jest stare (2009), ale wciąż aktywne. W przeszłości "@ font-face" nie było zdefiniowane. W 2009 roku nie było to możliwe, ale ... ludzie powtarzają odpowiedź pomimo tego, że Firefox obsługuje ją z wersji 3.5, IE prawdopodobnie z wersji 6, Chrome z wersji 4. Ale wciąż ... Opera Mini nie obsługuje. Kiedy pisałem odpowiedź, główna odpowiedź ma +21 punktów. – 18C

0

<input type="text" style="-webkit-text-security: circle;" />

+1

Własność CSS '-webkit-text-security' nie będzie działała w IE, Firefox ani Operze. – sorak

Powiązane problemy