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