繁体   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