[英]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.