Java android sha512示例

Java android sha512示例,java,android,performance,sha512,Java,Android,Performance,Sha512,有人能为java/android提供一个例子,说明如何使用sha512+salt的PW\u hash\u ITERATION\u COUNTiterations来散列密码吗 在伪代码中: hash = sha512(concat(pw,salt)); for (i = 1; i<PW_HASH_ITERATION_COUNT; i++){ hash = sha512(concat(hash,concat(pw,salt))); } 用。阅读这里,尤其是我链接到的关于 理想情况下

有人能为java/android提供一个例子,说明如何使用sha512+salt的
PW\u hash\u ITERATION\u COUNT
iterations来散列密码吗

在伪代码中:

hash = sha512(concat(pw,salt));
for (i = 1; i<PW_HASH_ITERATION_COUNT; i++){
    hash = sha512(concat(hash,concat(pw,salt)));
}
用。

阅读这里,尤其是我链接到的关于

  • 理想情况下,您应该使用bcrypt或scrypt,而不是自己进行密码哈希
  • 但是如果必须,您应该至少运行几千次迭代,最好更多
是的,您可以对SHA-512使用
MessageDigest
。每次调用
摘要
,对象的状态都会自动重置,这非常方便——您可以立即开始为下一次迭代进行更新

但我仍然认为你应该用bcrypt或scrypt来代替。为了您自己和用户的利益。:-)

a被发现足以满足您想要做的事情,并且它只进行2次迭代

归结起来就是

hash = sha512(concat(xor(salt,nonce2),sha512(concat(xor(salt,nonce1),pw)));

您知道bcrypt for java(android)的正确实现吗?也许对于objectiv-c(ios)也是如此?@Stuck:对于Java,我使用Damien Miller的实现。Damien是便携式OpenSSH的维护者,我相信他的安全知识。不确定Objective-C.HMAC对于密码哈希仍然太快。请阅读我帖子中的链接文章,了解为什么需要几千次迭代。关键是让每次密码试用都花费很长时间(例如,每次四分之一秒),从而使密码破解变慢。合法登录网站的人不会“感觉”到四分之一秒;但是破解密码的人在试图破解10亿个密码时会感到痛苦,请回答你自己的问题,作为实际答案。这不是一个论坛,而是一种问答形式。
hash = sha512(concat(xor(salt,nonce2),sha512(concat(xor(salt,nonce1),pw)));