簡體   English   中英

如何在Java本地安全地存儲保存的密碼?

[英]Where can I store saved password locally but securely in Java?

與瀏覽器類似,我的應用程序需要在本地保存一些密碼,以免用戶每次都輸入密碼。 碰巧,欺詐應用程序可能會努力從程序的配置文件中檢索此密碼。

我尋求一種避免這種情況的方法-理想情況下,通過命令操作系統僅將我的密碼提供給我的程序,而不提供其他密碼。 當我想到這一點時,這似乎是不可能完成的任務。 無論我的應用程序可以訪問什么,其他任何應用程序也都可以訪問。

在Android上,有一個安全模型可讓您的應用程序真正只為自己保存數據(除非手機已扎根,並且惡意程序在根特權下運行)。

這有可能用Java實現嗎? 還是在我的程序針對的Windows上? 同樣,除了admin帳戶,它可以執行任何操作。

編輯:雖然還有一個關於非常相似主題的問題,但是這個問題的答案並沒有真正解釋任何內容。 我希望獲得特定的Java類名稱和示例。 特別是現在,當我無法使用另一個問題的答案中建議的密鑰庫時。

您可以使用java-keyring庫。

// Password can be stored to key store by using Keyring.setPassword method.
// PasswordSaveException is thrown when some error happened while saving password.
// LockException is thrown when keyring backend failed to lock key store file.
        try {
            keyring.setPassword("My service name", "My account name", "My password");
        } catch (LockException ex) {
            Logger.getLogger(Program.class.getName()).log(Level.SEVERE, null, ex);
            return;
        } catch (PasswordSaveException ex) {
            Logger.getLogger(Program.class.getName()).log(Level.SEVERE, null, ex);
            return;
        }

您也可以使用Netbeanskeyring api

暫無
暫無

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

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