Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 隐藏算法是必要的吗?_Java_Android_Security - Fatal编程技术网

Java 隐藏算法是必要的吗?

Java 隐藏算法是必要的吗?,java,android,security,Java,Android,Security,我只是想澄清一下,在数据安全方面,我使用SecretKeyFactory对象来生成一个秘密密钥。这将用于加密/解密数据 这是我的密码 private SecretKey getKey(String user_id, String salt) throws NoSuchAlgorithmException, InvalidKeySpecException, UnsupportedEncodingException { SecretKey secretKey = null;

我只是想澄清一下,在数据安全方面,我使用SecretKeyFactory对象来生成一个秘密密钥。这将用于加密/解密数据

这是我的密码

 private SecretKey getKey(String user_id, String salt) throws NoSuchAlgorithmException,
        InvalidKeySpecException, UnsupportedEncodingException {
    SecretKey secretKey = null;

    String PBE_SHA256_256BitAES_CBC_BC                  = "PBEWithSHA256And256BitAES-CBC-BC";
    String AES_ENCRYPTION                               = "AES";

    SecretKeyFactory secretKeyFactory = SecretKeyFactory.getInstance(PBE_SHA256_256BitAES_CBC_BC);
    KeySpec keySpec = new PBEKeySpec(user_id.toCharArray(), salt.getBytes(), Constants.ITERATION_COUNT, Constants.KEY_LENGTH);

    secretKey = secretKeyFactory.generateSecret(keySpec);
    secretKey = new SecretKeySpec(secretKey.getEncoded(), AES_ENCRYPTION );

    return  secretKey;
}

我的问题是。是否需要隐藏用于获取secretkey的算法?如果没有,我们应该将算法存储在哪里,以便提高安全性?

否,不需要隐藏算法。这样做将会并且只会产生一种虚假的安全感。在任何精心设计的密码系统中,密钥是唯一需要保密的东西。

@shinta这个概念被称为。