簡體   English   中英

Java 1.5命令行密碼屏蔽

[英]Java 1.5 Command Line Password Masking

所有,

我們的服務器運行的是Java 1.5,我很難掩蓋命令行中的用戶輸入。 我正在執行一個jar文件(java -jar my.jar),並通過printlns通過命令行提示符進行工作。 我無法使用Java控制台。

謝謝

最好的方法是使用Java 6的Console readPassword()方法。 由於您提到使用的是Java 5,因此這不是一種選擇。 許多Java 6實用程序已被反向移植到Java5。盡管如此,我還沒有找到為該類做過任何事情的人。

該站點上有一篇很好的文章,介紹了如何使用Java 5進行操作。http://www.devdaily.com/java/edu/pj/pj010005/ 基本上,它們使用InputStreamReader包裝System.in並讀取一行。

這是一篇有趣的文章: http : //java.sun.com/developer/technicalArticles/Security/pwordmask/

現在編輯我重新讀了,我認為他們的命令行“解決方案”是非常愚蠢的。 我們的應用程序中提供的是一個輔助程序來執行此操作,該程序可以了解如何根據OS(Linux,Windows等)屏蔽輸入。 Java代碼偵聽套接字上的命令,前端密碼讀取器獲取密碼和其他所需的內容,然后將命令發送到Java代碼。

在Unix系統上? 您可以在讀取程序之前嘗試使用參數-echo運行系統程序stty-echo再執行程序stty echo

ProcessBuilder pb = new ProcessBuilder("stty", "-echo");
pb.start().waitFor();
// Read the password here
pb = new ProcessBuilder("stty", "echo");
pb.start().waitFor();

請注意,我還沒有嘗試過! 有些stty程序對此感到滿意,而有些則不滿意(那些不需要他們的stdin來自/dev/tty可以正常工作...)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM