2009-10-30 88 views

回答

26

您不能更改標準密碼字段中輸入密碼屏蔽字符。你可以用文本框來僞造它,但是它會造成一個弱的安全模型,因爲你沒有從密碼文本框中獲得保護。作爲一個方面說明,改變像這樣的項目的行爲通常不是一個好主意,因爲用戶已經習慣了一種形式的遮蔽,並且你將引入一種不同的形式 - 如果沒有充分的理由這樣做, d避免它。

+0

我怎麼能僞造它與文本框,但我不使用此功能的密碼,請檢查問題http://stackoverflow.com/questions/31604402 /替換文本與 - 星 - 在-HTML-沒有JavaScript的?noredirect = 1個#comment51159417_31604402 – 2015-07-24 07:25:13

3

否 - 用戶代理選擇自己的默認風格,並有(據我所知)沒有CSS屬性,你可以改變,以確定掩蔽字符。

當然,這將是可能的,如果密碼字段只是一個標準的文本字段,並手動屏蔽與JavaScript事件處理程序的輸入(onkeypress事件,可能)。你甚至可以在HTML中聲明該字段爲type="password",然後讓你的JS函數修改DOM來改變它的類型。儘管如此,我會對此有點謹慎。瀏覽器的實現幾乎可以肯定是非常穩固的,並且繞過已建立的安全功能來推出自己的產品並不是一個好主意。

+6

建立的安全功能? HTML中的密碼和文本輸入字段大致相同,只是用戶界面發生變化,掩碼出現在密碼字段中。 我並不是在調低你的答案,但這不像是重新發明輪子或創建自制加密引擎,它只是修補一個UI元素以滿足你的喜好。 – Spidey 2010-06-05 03:25:01

+1

@Spidey,除了字符掩碼之外,密碼字段還會阻止從它們複製內容,具體取決於瀏覽器和操作系統。 – 2014-01-31 18:27:40

+1

@MicahHenning感謝您指出這一點。無論如何,即使用戶試圖從自定義文本框中複製,他所得到的只是asterisc或點或任何其他符號來掩蓋真正的密碼。 – Spidey 2014-01-31 18:47:18

1

截至目前,它看起來好像這是可能的WebKit瀏覽器。有關示例和文檔,請參閱http://help.dottoro.com/lcbkewgt.php

不適用於密碼輸入

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

還有其他瀏覽器沒有很好的解決方案的時候這個答案寫,甚至在WebKit瀏覽器,你的人物允許指定是非常有限的。

+4

這不起作用。我在4個不同的瀏覽器上測試過它。 – 2017-05-25 11:41:30

+0

已更新。謝謝@OleHaugset。 – www139 2017-12-07 19:40:25

14

創建您自己的字體並使用@font-facefont-family(和font-size)爲input[type="password"]。它應該有助於解決您的問題。但是......你必須用替換的子彈和星號字符來創建字體。字體中的所有字符都可能代表相同的字符。使用谷歌找到免費的程序來編輯矢量字體。

永遠不要說 「這是不可能的」。你應該爲你的問題找到一個黑客。

要用您的符號替換的字符(適用於Chrome,Firefox和MSIE): 26AB,25E6,25CF,25D8,25D9,2219,20F0,2022,2024,00B7,002A。

(18C)

+1

你有一個共享的例子字體嗎? – camolin3 2017-11-02 18:57:00

+0

這應該是最完美的答案......謝謝大家......解決了我的問題 – 2017-12-26 09:49:35

+1

@waLLe:女人不是男人......人們很少會認爲抽象和多層次的行爲。 BTW。這個問題已經過時(2009年),但依然活躍。過去'@ font-face'沒有被定義。在2009年,這是不可能的,但...人們重複了答案,儘管火狐從v3.5支持它,IE可能從v6,v4的Chrome。但仍然... Opera Mini不支持。當我寫回答時,主要答案有+21分。 – 18C 2017-12-26 20:07:36

0

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

+1

CSS屬性'-webkit-text-security'不適用於IE,Firefox或Opera。 – sorak 2018-02-28 03:44:10