Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.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 使用密码短语、saltValue、密码迭代、initVector、keySize的sha1加密_Java_Security_Encryption_Cryptography_Sha1 - Fatal编程技术网

Java 使用密码短语、saltValue、密码迭代、initVector、keySize的sha1加密

Java 使用密码短语、saltValue、密码迭代、initVector、keySize的sha1加密,java,security,encryption,cryptography,sha1,Java,Security,Encryption,Cryptography,Sha1,我正在开发java应用程序,我被要求使用以下信息生成安全代码 Value to be encrypted ="test1234"; passPhrase = "testValue" saltValue = "testValue" hashAlgorithm = "SHA1" passwordIterations = 2 initVector = "testValue" keySize = 256 有人能告诉我,基于上述值使用SHA1算法生成哈希值的方法是什么。这个问题有点模糊,但我认为您可

我正在开发java应用程序,我被要求使用以下信息生成安全代码

Value to be encrypted ="test1234";

passPhrase = "testValue"
saltValue  = "testValue"
hashAlgorithm = "SHA1"
passwordIterations = 2
initVector = "testValue"
keySize = 256

有人能告诉我,基于上述值使用SHA1算法生成哈希值的方法是什么。

这个问题有点模糊,但我认为您可能希望使用PBKDF2生成哈希值。幸运的是,它在JavaSE6中非常简单+

KeySpec spec = new PBEKeySpec(passsword.toCharArray(), salt, 
   iterations, derivedKeyLength);
SecretKeyFactory f = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA1");

return f.generateSecret(spec).getEncoded();

中有更深入的解释,请更明确地说明您正在尝试做什么。我们无法仅根据流程的输入猜测所需内容。请在此网站上查找PBKDF2。请注意,
initVector
无效(无编码,长度错误,非随机-如果与CBC模式加密一起使用),您需要定义如何对纯文本进行编码(“待加密”),
passPhrase
saltValue
转换成字节。+1虽然将字符串而不是字符数组输入到密码中有点不符合目的,而且不需要对已经是
SecretKey
的东西调用
getEncoded()
。是的,我想这取决于你想用SecretKey做什么。