簡體   English   中英

Java:安全存儲客戶端密碼

[英]Java: Secure storage for client password

Java中是否有任何東西可以允許將客戶端密碼存儲在安全的位置?

我的應用程序需要在離線模式下工作。 它應該允許用戶創建內容,將其存儲在設備上,並防止其他應用讀取該內容。 其他應用程序可能會訪問該內容,但它們不應對其進行解密。

一種經典的解決方案是使用安全的哈希函數來哈希用戶密碼,並使用結果來加密文件。 但是,這涉及到用戶每次訪問該應用程序時都要輸入其密碼。 我想以安全的方式保存密碼,以保護其免受設備上其他應用程序的侵害。

在Android中,可以通過使用Android Keystore System實現這種解決方案。

在純Java中是否有類似的東西?

您可以將java.security.MessageDigest與SHA一起用作算法選擇。

public class CryptWithMD5 {
private static MessageDigest md;

  public static String 
cryptWithMD5(String pass){
try {
    md = MessageDigest.getInstance("MD5");
    byte[] passBytes = pass.getBytes();
    md.reset();
    byte[] digested = md.digest(passBytes);
    StringBuffer sb = new StringBuffer();
    for(int i=0;i<digested.length;i++){
        sb.append(Integer.toHexString(0xff & digested[i]));
    }
    return sb.toString();
} catch (NoSuchAlgorithmException ex) {

}
    return null;
}

暫無
暫無

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

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